C 實驗(七) 多檔案組織結構

2021-10-10 06:26:36 字數 2913 閱讀 7712

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 中一種常用的做法是,獨立出乙個標頭檔案來。正確使用標頭檔案帶來的好處包括 支援 的區域性單獨編...