1
、學習將
c++程式按照不同的模組分割在不同的檔案中進行組織。 2
、學習編譯預處理命令在多檔案工程中的使用。
編寫好的程式檔案按照不同的模組分割成不同的檔案,新增合適的
include
語句和預編譯命令,將其改造為乙個多檔案工程。具體要求如下。
相關實驗中(參見本書前面的實驗),實現了複數類的算術運算和輸入
/輸出流的過載,但這些功能在主函式中的測試語句都是放在乙個
cpp檔案裡實現的。本實驗中要求將這些**分裝在
3個檔案中,第乙個檔案
complex.h
包含complax
的類定義,第二個檔案
complex.cpp
包含complax
類的函式實現,第三個檔案
test.cpp
包含主函式和相關的測試程式。在適當的檔案中新增合適
include
語句和預編譯語句(
ifndef-define-endif
結構),使其成為乙個能夠正確執行的工程。
原**主要實現複數的加減乘、數乘以及取共軛等功能,並過載了輸入輸出流。**中將所有函式都定義成了成員函式,並使用了友元函式相關知識。
使用庫函式
atof()
將字串轉換為浮點型資料。
由於需要判斷輸入是選擇退出還是繼續,所以用字串來接收輸入,判斷是否為q或
q後將字串轉換為
double
型。源**
#include#include//strlen函式標頭檔案
#include"string.h"
#include//atof函式標頭檔案
using namespace std;
class comple;
comple::comple(double r, double i)
comple::~comple(){}
comple comple::operator+(const comple & a) const
comple comple::operator-(const comple & a) const
comple comple::operator*(const comple & a) const
comple comple::operator~() const
comple comple::operator*(const double x ) const
ostream & operator<<(ostream & os, const comple & b)
comple operator*(double x, const comple & b)
int main();
#endif
2、類實現檔案 comple.cpp
#include"comple.h"
#include#include//strlen函式標頭檔案
#include"string.h"
#include//atof函式標頭檔案
using namespace std;
comple::comple(double r, double i)
comple::~comple(){}
comple comple::operator+(const comple & a) const
comple comple::operator-(const comple & a) const
comple comple::operator*(const comple & a) const
comple comple::operator~() const
comple comple::operator*(const double x ) const
ostream & operator<<(ostream & os, const comple & b)
comple operator*(double x, const comple & b)
3、類的使用檔案 main.cpp
#include #include"comple.h"
using namespace std;
int main(){
comple a(3.0,4.0);
comple c;
cout << "enter a complex number (q to quit):\n";
while(cin >> c){
cout << "c is " << c << endl;
cout << "complex conjugate is " << ~c <
實驗總結
這次實驗主要學習c++的多檔案組織結構,將乙個複雜的程式分為不同的檔案用乙個工程組織起來。
使用的複數運算的源**,參考之前的實驗**同時做了改動和注釋。**中過載輸入輸出流中使用友元函式、處理字串使用strlen()函式和atof()函式、使用while迴圈使程式執行設定跳出條件的方法等知識之前學習較少,在本次實驗中得以了解學習。
在使用多檔案組織c++程式時,注意到幾個知識點。
1、使用」」和<>包含標頭檔案的區別。包含在<>中,編譯器首先查詢標準庫;包含在」」中則首先查詢當前工作目錄。因此包含自定義標頭檔案,使用」」.
2、在標頭檔案中使用#ifndef(即if not define),#define,#endif防止標頭檔案包含多次。意味著僅當前沒有使用預處理器編譯指令#define定義名稱***時,才處理#ifndef和#endif之間的語句。
學習c++的多檔案組織結構,利用工程可以更方便地編寫大型的專案,方便之後的學習和使用。
有關C 中的多檔案組織結構
今天讀到了多檔案組織結構,感覺對c 的認識又上了乙個層次,接下來就談談多檔案組織結構。c 中程式的顯著特點,有三部分構成,類的定義,類的實現,類的使用 主函式 通常乙個程式是由多個源程式檔案構成,源程式檔案又稱為編譯單元,每個源程式檔案可以進行單獨編寫,編譯,再進行連線。再來說說原始檔和標頭檔案。原...
C 程式的多檔案組織
構造乙個大型程式時,如果程式開發時間有限,這種形式的團隊協作就非常重要。利用函式將乙個程式設計任務分解為子任務的乙個優勢在於,不同的人可以負責不同的子任務。在程式進行編譯時,以程式模組 即程式檔案 為編譯單位,即分別對每乙個編譯單位進行編譯。如果發現錯誤,可以在本程式模組範圍內查錯並改正。考慮識別符...
c 程式的多檔案組織
當程式規模變大後,乙個程式用多個檔案組織,便於組織生產。這樣,不必每次都重複對所有 進行編譯,而只需編譯一次即可。把編譯後所形成的目標檔案儲存起來,以後在需要時把它調出來直接與程式的目標檔案相連線即可。c 中一種常用的做法是,獨立出乙個標頭檔案來。正確使用標頭檔案帶來的好處包括 支援 的區域性單獨編...