假設我有一個抽象基類A,並從中派生B.C++:返回子類指針
用下面的代碼:
A* myInst = (A*) new B;
A* GetA() { return myInst; }
B* GetB() { return (B*) myInst; }
第一功能編譯,第二不。錯誤:error C2143: syntax error : missing ';' before '*'
- 爲什麼我不能返回指向子類A的指針?
如果我用return NULL;
替換函數的內容,也會出現錯誤!
函數聲明後面的額外分號似乎很奇怪。嘗試刪除它。 – Lagerbaer 2010-11-23 15:39:06
不用說,函數原來是inline – Parror 2010-11-23 15:39:53
這個錯誤實際上是指哪一行?您可能想向我們展示整個代碼,因爲`;`錯誤可能不僅僅意味着缺少分號(模糊,是) – birryree 2010-11-23 15:41:50