Forward Declaration
介紹
在了解 Forward Declaration 之前, 先了解 Circular Dependency 的問題, 其狀況為有兩個 class 互相依賴, 但是所以沒辦法把 class A 先定義好再定義 class B, C++ 編譯器會沒有足夠的資訊來處理, 解決方案是使用 Forward Declaration, 先宣告好 class 但不實做, 後面就可以正常地拿來用。
範例:
class A; // forward declaration
class B; // forward declaration
class B {
public:
A* a;
};
class A {
public:
B* b;
};
int main() {
return 0;
}
(Circular Dependency 有時候又被稱為 Circular Reference, 但是這又會跟 Reference Counting 技術中的 Circular Reference 撞名。)