好的,我正在寫一個遊戲,它有一個嚮導,裏面充滿了孩子們的類(goomba,koopa,boss1),我需要這樣做的時候我打電話更新它調用childclasses各自的更新。我設法創造了一個我的問題的例子。添加虛擬功能的問題
#include <stdio.h>
class A{
public:
virtual void print(){printf("Hello from A");}
};
class B : public A{
public:
void print(){printf("Hello from B");}
};
int main(){
A ab = B();
ab.print();
while(true){}
}
輸出想要的:「你好,從B」 輸出了:「你好,從A」
我如何得到它調用B的打印功能?
是由切片的問題? – 2010-05-28 18:10:14
是的,切片。請參閱http://stackoverflow.com/questions/274626/what-is-the-slicing-problem-in-c – jpalecek 2010-05-28 18:10:50
順便說一句,這不應該被標記爲'C',因爲'C'語言沒有繼承的設施。刪除了'C'標籤。 – 2010-05-28 18:19:08