[問題] header 與 incomplete type is not allowed

看板C_and_CPP (C/C++)作者 (Ar藤)時間15年前 (2011/03/13 01:22), 編輯推噓2(207)
留言9則, 3人參與, 最新討論串1/1
程式碼中有一行如下 PageManager *pageManager= PageManager::getInstance(); compile結果是incomplete type is not allowed 於是我先改成下面這行 試試看 PageManager *pageManager=NULL; 結果 compile 過了 最後試了很久發現要加上 #include "PageManager.hpp" PageManager *pageManager= PageManager::getInstance(); 這樣這行才會過 覺得奇怪的是如果 PageManager 沒被include到 那應該PageManager *pageManager=NULL;就已經錯了 請問為什麼宣告可過 但加上後面的函式就錯了? (補充:原本的程式碼 header 包很多層 叫做PageManager.hpp的也有好幾個) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.135.221.195

03/13 03:06, , 1F
實體化的時候才會需要 PageManager 的佈局資訊
03/13 03:06, 1F

03/13 03:07, , 2F
而編譯器一定知道 pointer 的佈局和大小
03/13 03:07, 2F

03/13 13:42, , 3F
因為定義指標只需要類別宣告, 但是你要呼叫函式必須先
03/13 13:42, 3F

03/13 13:44, , 4F
有PageMenager::getInstance()的宣告, 這跟佈局倒是沒
03/13 13:44, 4F

03/13 13:44, , 5F
什麼關係 ^^"
03/13 13:44, 5F

03/13 17:18, , 6F
ouch, 沒錯!
03/13 17:18, 6F

03/13 18:53, , 7F
感謝!
03/13 18:53, 7F

03/14 01:22, , 8F
再問一下 這表示我include到某個hpp它宣告了PageManager
03/14 01:22, 8F

03/14 01:23, , 9F
但是又沒include PageManager.hpp 這樣結構是不是怪怪的
03/14 01:23, 9F
文章代碼(AID): #1DUwlWhD (C_and_CPP)
文章代碼(AID): #1DUwlWhD (C_and_CPP)