真的很糟糕的标题,想不出怎么说出来,对不起.
所以说我有以下代码:
class A {
virtual int getSize() {
return 0;
}
}
class B : public A {
int getSize() {
return 32;
}
}
void doStuff(A a) {
std::cout << a.getSize() << std::endl;
}
int main() {
B b;
doStuff(b);
}
Run Code Online (Sandbox Code Playgroud)
它会打印出来0,但我希望它打印出来32.换句话说,我想将它传递给类,并打印出类函数,所以我可以创建一个类C,其中大小为64,如果我将该C实例传递给doStuff函数,我希望它打印64.
有什么方法可以用C++做到这一点,我是否必须使用模板或一些我不知道的奇特的C++特性?