看板 C_and_CPP 關於我們 聯絡資訊
程式碼中有一行如下 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
legnaleurc:實體化的時候才會需要 PageManager 的佈局資訊 03/13 03:06
legnaleurc:而編譯器一定知道 pointer 的佈局和大小 03/13 03:07
loveme00835:因為定義指標只需要類別宣告, 但是你要呼叫函式必須先 03/13 13:42
loveme00835:有PageMenager::getInstance()的宣告, 這跟佈局倒是沒 03/13 13:44
loveme00835:什麼關係 ^^" 03/13 13:44
legnaleurc:ouch, 沒錯! 03/13 17:18
Arton0306:感謝! 03/13 18:53
Arton0306:再問一下 這表示我include到某個hpp它宣告了PageManager 03/14 01:22
Arton0306:但是又沒include PageManager.hpp 這樣結構是不是怪怪的 03/14 01:23