類的前向宣告與呼叫

2021-07-03 17:28:19 字數 600 閱讀 1637

類的宣告與變數的宣告類似,如:

int a;    // 定義乙個變數或宣告乙個變數

class a; // 宣告乙個類,類名為a

注:宣告乙個類的時候,不占用任何儲存空間(不知正確與否,看到網上好多人這麼說。用sizeof試驗時,sizeof(a)是不能通過編譯的)。

下面通過例項來進行說明類的前向宣告與呼叫問題:

#includeusing namespace std;

class a1; // 宣告類,類名為a1

class a2; // 宣告類,類名為a2

class a

void funaa();

a1 *p;

// a1 aa; // 只能是指向這個型別的指標或引用

// 此處定義乙個a1類的aa物件的時候,就需要呼叫建構函式,

// 而此時,a1類還是乙個不完整的類(沒有建構函式),所以會報錯

};class a1

void main()

總之一句話:

不管是變數還是函式,呼叫之前都需要定義!!!

類前向宣告

class a a void del a ptr int main 正常執行,delete p 先執行類析構函式,通知系統這塊記憶體上的資料已經無效無需維護了,然後使用operator delete 釋放這塊記憶體 class a void del a ptr class a a int main ...

類的前向宣告

在我們看一些c 標頭檔案的時候,經常可以看到某些類的宣告但卻找不到定義。如 class abc 僅僅宣告,沒有定義 通常後面還會有定義指向這個型別的指標或引用,如 abc pointer abc pointer 這種形式稱之為類的前向宣告 引用。在宣告之後,定義之前,類abc是乙個不完全型別 inc...

類的前向宣告

class person void show1 person k cout上述 在友元函式的類外實現中使用了該類,則需在之前宣告,上述 已做宣告。但是上述 依然會報錯,因為類的提前宣告,編譯器只是知道了person這是乙個類,該類的具體細節 例如成員變數 編譯器並不知道,所以此時person又叫做不...