看板 C_and_CPP 關於我們 聯絡資訊
以下是我在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