C 中的前向宣告

2021-09-20 21:11:31 字數 493 閱讀 2708

可以宣告乙個類而不定義它。這個宣告,有時候被稱為前向宣告(forward declaration)。在宣告之後,定義之前,類screen是乙個不完全型別(incompete type),即已知screen是乙個型別,但不知道包含哪些成員。不完全型別只能以有限方式使用,不能定義該型別的物件,不完全型別只能用於定義指向該型別的指標及引用,或者用於宣告(而不是定義)使用該型別作為形參型別或返回型別的函式。

類的前向宣告只適用於指標和引用的定義,如果是普通類型別就得使用include了:

class a; // a被宣告了,但沒被定義。

class b // b被宣告、定義

#include "a.h"

class b

不必要的 #include<> 會增加編譯時間;

混亂隨意的 #include<> 可能導致迴圈#include,可能出現編譯錯誤。

c 中的前向宣告

前向宣告 可以宣告乙個類而不定義它。這個宣告,有時候被稱為前向宣告 forward declaration 在宣告之後,定義之前,類screen是乙個不完全型別 incompete type 即已知screen是乙個型別,但不知道包含哪些成員。不完全型別只能以有限方式使用,不能定義該型別的物件,不完...

C 中的前向宣告

前向宣告 可以宣告乙個類而不定義它。這個宣告,有時候被稱為前向宣告 forward declaration 在宣告之後,定義之前,類screen是乙個不完全型別 incompete type 即已知screen是乙個型別,但不知道包含哪些成員。不完全型別只能以有限方式使用,不能定義該型別的物件,不完...

c 中的前向宣告

1 不必要的 include 會增加編譯時間.2 混亂隨意的 include可能導致迴圈 include,可能出現編譯錯誤.可以宣告乙個類而不定義它。這個宣告,有時候被稱為前向宣告 forward declaration 在宣告之後,定義之前,類screen是乙個不完全型別 incompete ty...