類別相互在定義時互相參考是常有的事
fiile A.h
---------------
#include "B.h"
class A{
public:
private:
B* m_pB;
}
file B.h
-------------------
#include "A.h"
class B{
public:
private:
A* m_pA;
}
------先不管A.cpp & B.cpp---
build 一下,會發生「A does not name a type」的錯誤訊息
這時,只要在A.h 中,先在class A的定義前加上 「class B;」這樣就可以了
---------A.h----
include "B.h"
class B;
class A{
public:
private:
B* m_pA;
}
----------------
(本例是互相參考,所以B.h也要加上 「class A;」這行)
詳細請參考這裡 「'XX' does not name a type 和 field 'XX' has incomplete type - 兩個 C++ 編譯錯誤及解決辦法」
大家加油囉
沒有留言:
張貼留言