作者Arton0306 (Ar藤)
看板C_and_CPP
標題[問題] header 與 incomplete type is not allowed
時間Sun Mar 13 01:22:37 2011
程式碼中有一行如下
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