♥ 學習筆記Learning 程式語言 Coding

[C++程式設計] 學習筆記─從Hello World來聊檔案分工

說到檔案分工這檔事,雷米等到很後期才開始使用,因為不學著使用就等著看程式碼變成了大雜燴,又龐大又難管理,寫起來容易更改到不必要的東西;程式的世界總是從Hello World說起的,就像一個孩子剛睜開雙眼,然後對這個世界打招呼。(>/////<)Y,因此,檔案分工這件事我們也從Hello World開始吧!記住,是Hello World,不是Hell World喔!(T____T)O”

   1:  //Filename : HelloWorld.cpp (Version 1)
   2:   
   3:  #include <iostream>
   4:  using namespace std;
   5:   
   6:  int Hello;
   7:   
   8:  int main(){
   9:      cout << "Hello World!!!" << endl;
  10:   
  11:      cin >> Hello;
  12:      cout << "Hello = " << Hello << endl;
  13:   
  14:      system("PAUSE");  
  15:      return 0;
  16:      }//end main

這是一個Hello World的程式,我們姑且幫他命名為HelloWorld.cpp好了,在第6行宣告整數Hello,接著在main()的裡面,第10行輸出Hello World的字樣,接著讓使用者(user)輸入數字,然後印出Hello = 數字,就完成了整個程式過程;這個程式非常的簡單,應該絕大部分的初學者都能輕易的寫出這樣的程式。
執行結果長這樣!

cats

好的,現在我們根據一模一樣的程式碼,做一點小小的修改,寫出一個名為HelloWorld.h的標頭檔。
因此,我們的HelloWorld.cpp檔案內容變成了,注意一下第4行與原本的第6行。。

   1:  //Filename : HelloWorld.cpp (Version 2)
   2:   
   3:  #include <iostream>
   4:  #include "HelloWorld.h"
   5:   
   6:  using namespace std;
   7:   
   8:  int main(){
   9:   
  10:      cout << "Hello World!!!" << endl;
  11:      cin >> Hello;
  12:      cout << "Hello = " << Hello << endl;
  13:   
  14:      system("PAUSE");  
  15:      return 0;    
  16:      }//end main

 

HelloWorld.h檔案內容則是…

   1:  //Filename : HelloWorld.h (Version 2)
   2:   
   3:  #ifndef HELLOWORLD_H
   4:  #define HELLOWORLD_H
   5:   
   6:  int Hello;
   7:   
   8:  #endif

我已經將主程式所用到的宣告變數丟去標頭檔了,那麼,我可不可以把列印功能也丟出去呢?
因此,我們為了讓主程式更簡潔,又做了以下的修改。

   1:  //Filename : HelloWorld.cpp (Version 3)
   2:   
   3:  #include <iostream>
   4:  #include "HelloWorld.h"
   5:   
   6:  using namespace std;
   7:   
   8:  int main(){
   9:   
  10:      Print();
  11:   
  12:      system("PAUSE");  
  13:      return 0;
  14:      
  15:      }//end main

同理,我們的HelloWorld.h也做了因應的修改。

   1:  //Filename : HelloWorld.h (Version 3)
   2:   
   3:  #ifndef HELLOWORLD_H
   4:  #define HELLOWORLD_H
   5:   
   6:  int Print();
   7:   
   8:  #endif
我們額外了再新增兩個檔案,分別是Print.cpp
   1:  //Filename : Print.cpp (Version 3)
   2:   
   3:  #include <iostream>
   4:  #include "Print.h"
   5:   
   6:  using namespace std;
   7:   
   8:  int Print(){
   9:      cout << "Hello World!!!" << endl;
  10:      cin >> Hello;
  11:      cout << "Hello = " << Hello << endl;
  12:  };

以及,Print.h用來宣告Print.cpp函式會用到的變數。

   1:  //Filename : Print.h (Version 3)
   2:   
   3:  #ifndef PRINT_H
   4:  #define PRINT_H
   5:   
   6:  int Hello;
   7:   
   8:  #endif

這三個版本的程式,所產生的結果都是一樣的。
唯一的差別就只是
版本一(Version 1) 將所有內容寫在一起。
版本二(Version 2) 將宣告的變數放入標頭檔。
版本三(Version 3)將宣告的變數與執行功能的細節,各別放入標頭檔與其他的C++檔案。

因此當你寫到大型一點的程式碼,為了方便管理,可以用這個基本的觀念來進行。
其他更複雜的東西嗎?(T口T)O” 我們以後再會~

About the author

蕾咪

蕾咪,來自台東,卻不定期旅居歐洲的工程師女孩,身兼作家、部落客、創業家等多重身份。畢業於台大電子所,曾在義大利商與美商擔任研發工程師;走訪世界後,發現對台灣有段割捨不了的愛,讓我們一起努力成為想要的自己吧!:) 合作邀稿請聯繫:ramihaha@gmail.com

Leave a Comment