仮想メソッドを使用しないで継承することはできますか?コンパイラは、次のコードは多相ではないと言っています。クラスがポリモーフィックでないため、ダウンキャストできませんか?
例:私たちはB
オブジェクトへA
オブジェクトからダウンキャストしようとしている別のクラスで
Class A(){
int a;
int getA(){return a;};
}
Class B(): A(){
int b;
int getB(){return b;};
}
:
A *a;
B *b = dynamic_cast<B*>(a)
が、これは次のエラー得られます。
cannot dynamic_cast ... (source type is polymorphic)
'a'はポインタではありません。これはあなたのコードの中にありますか? – littleadv
申し訳ありませんが、実際にはポインタです。 – wbarksdale
コンパイル時間または実行時間はエラーですか?実行時間の場合、IMHOは予想される動作です。 – littleadv