類的宣告與變數的宣告類似,如:
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又叫做不...