私は、抽象基底クラス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
これは、関数がインラインであったことを意識していません。 – Parror
実際にそのエラーはどの行ですか? ';'エラーは単にセミコロン(曖昧な、はい)が足りないことを意味する可能性があるので、コード全体を表示したいかもしれません – birryree