是否有可能繼承沒有虛擬方法?編譯器說以下代碼不是多態的。不能縮減因爲類不是多態嗎?
實施例:
Class A(){
int a;
int getA(){return a;};
}
Class B(): A(){
int b;
int getB(){return b;};
}
在另一類我們試圖從A
目的是向下轉換到一個B
對象:
A *a;
B *b = dynamic_cast<B*>(a)
但這提供了以下錯誤:
cannot dynamic_cast ... (source type is polymorphic)
'a'不是指針。這是如何在你的代碼? – littleadv
對不起,a其實是一個指針。 – wbarksdale
並且是錯誤編譯時間或運行時間?如果運行時,恕我直言,其預期的行爲。其編譯時錯誤爲 – littleadv