作者walm20 (New CygnusX)
看板C_and_CPP
標題[問題] error : 類型不完全
時間Sun Apr 11 01:35:57 2010
以下是我在Ubuntu 8.04 , g++編譯的錯誤訊息:
main.cc:69: 錯誤: 欄位 「b」 類型不完全
main.cc: In constructor 「A::A()」:
main.cc:68: 錯誤: 類別 「A」 沒具名為 「b」 的欄位
make: *** [all] Error 1
以下是我的程式碼:
class B;
class A {
public:
A():b(this) { }
B b;
};
class B {
public:
B(A *a) { a_ = a; }
A *a_;
};
雖然我已經解決了這Error
但是我還是不懂為什麼定義順序調一下就可以過~"~
以下是我順序調換的程式碼:
class A;
class B {
public:
B(A *a) { a_ = a; }
A *a_;
};
class A {
public:
A():b(this) { }
B b;
};
先謝摟
--
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.118.127.111
※ 編輯: walm20 來自: 140.118.127.111 (04/11 01:36)
→ uranusjr:因為你在 A 裡有用到 B 的 constructor, 而在 B 裡面只有 04/11 01:49
→ uranusjr:宣告 A 沒有用到其中的函數 04/11 01:49
推 QQ29:你宣告了 B b; 只能用指標 04/11 01:51
→ QQ29:在還沒看到class B之前你不能給他instance 04/11 01:52