iT邦幫忙

2021 iThome 鐵人賽

DAY 6
0

最後就會形成下面這張圖,左邊工程師負責寫類別並compile,右邊負責寫主程式並compiler,中間用介面當橋樑,最後藉由連結器拉再一起(linker)成可執行檔交給User使用,三方都不知道對方的如何寫的只看得到標頭檔.h。不可否認這種設計有點古老了,其實根本沒人有興趣看你我的程式碼,這世界很少靠黑科技賺錢的公司大部分是靠商業模型賺錢(請君看看那可憐的世界前三大數據公司MapR只賣了5000萬美金而另外兩家直接被打到合併,股價一度從21跌到5元同期NASDAQ都從6000漲到16000,最終乘著2021景氣好趕緊把公司賣掉),所以最新的C++20與之後的標準可以不用標頭檔.h直接import package

接續Day4介面與類別實作細節都有了還缺一個主程式,為了隱藏實作細節主程式只引入GradeBook.h標頭檔

// Fig. 3.17: fig03_16.cpp
#include <iostream>
#include "GradeBook.h" // include definition of class GradeBook
using namespace std;

int main()
{
   // create two GradeBook objects; 
   // initial course name of gradeBook1 is too long
   GradeBook gradeBook1( "CS101 Introduction to Programming in C++" );
   GradeBook gradeBook2( "CS102 C++ Data Structures" );

   // display each GradeBook's courseName 
   cout << "gradeBook1's initial course name is: " 
      << gradeBook1.getCourseName()
      << "\ngradeBook2's initial course name is: " 
      << gradeBook2.getCourseName() << endl;

   // modify myGradeBook's courseName (with a valid-length string)
   gradeBook1.setCourseName( "CS101 C++ Programming" );

   // display each GradeBook's courseName 
   cout << "\ngradeBook1's course name is: " 
      << gradeBook1.getCourseName()
      << "\ngradeBook2's course name is: " 
      << gradeBook2.getCourseName() << endl;
} 

https://ithelp.ithome.com.tw/upload/images/20210918/20098886ZY8NAF1qBs.png


上一篇
Day5-如何超越Google
下一篇
Day7-三論標頭檔與Proxy Class
系列文
少年DevOps的C++奇怪漂流30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言