自分のプログラムでキャスティングを使用する必要があります。私は、基本クラスダイナミックキャスティングの限界は何ですか?
scSupervisor* msSupervisor; ///< My Supervisor
で、私のコードの見出しを持っていると私は、派生クラスで、同じヘッダにアクセサ関数を作成したい
Supervisor* Supervisor_Get(void){ return (Supervisor*)msSupervisor;}
//dynamic_cast<Supervisor*>(msSupervisor);}
示すように、静的鋳造コンパイルとうまく動作します。私は、私はエラーメッセージを提示しています(コメントに示す)動的キャスト版に変更する場合は、:私の目には
cannot dynamic_cast '((Core*)this)->Core::<anonymous>.scCore::msSupervisor' (of type 'class scSupervisor*') to type 'class Supervisor*' (target is not pointer or reference to complete type)
dynamic_cast<Supervisor*>(msSupervisor);}
^
、それがポインタです。私は何か違法な行為をしていますか? dynamic_cast<T>
ものの
この時点で、コードは「スーパーバイザー」の完全な宣言を参照していますか?私の強調しているエラーメッセージを見てみましょう:_ "ターゲットはポインタではありません。 – user0042
この回答を見るhttps://stackoverflow.com/questions/332030/when-should-static-cast-dynamic-cast-const-cast-and-reinterpret-cast-be-used – Clonk