[問題] error : 類型不完全

看板C_and_CPP (C/C++)作者 (New CygnusX)時間16年前 (2010/04/11 01:36), 編輯推噓1(103)
留言4則, 2人參與, 最新討論串1/1
以下是我在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)

04/11 01:49, , 1F
因為你在 A 裡有用到 B 的 constructor, 而在 B 裡面只有
04/11 01:49, 1F

04/11 01:49, , 2F
宣告 A 沒有用到其中的函數
04/11 01:49, 2F

04/11 01:51, , 3F
你宣告了 B b; 只能用指標
04/11 01:51, 3F

04/11 01:52, , 4F
在還沒看到class B之前你不能給他instance
04/11 01:52, 4F
文章代碼(AID): #1BmBS1Cd (C_and_CPP)
文章代碼(AID): #1BmBS1Cd (C_and_CPP)