說到檔案分工這檔事,雷米等到很後期才開始使用,因為不學著使用就等著看程式碼變成了大雜燴,又龐大又難管理,寫起來容易更改到不必要的東西;程式的世界總是從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 = 數字,就完成了整個程式過程;這個程式非常的簡單,應該絕大部分的初學者都能輕易的寫出這樣的程式。
執行結果長這樣!
好的,現在我們根據一模一樣的程式碼,做一點小小的修改,寫出一個名為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” 我們以後再會~