好的,我正在写一个游戏,它有一个向导,里面充满了孩子们的类(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