对于下面的代码:
#include<iostream>
using namespace std;
class A{
public:
virtual int f(){return 1;}
};
class B : public A{
public:
virtual int f(){return 2;}
};
int main(int argc,char*argv[]){
A b=B();
cout<<b.f()<<endl;
}
我希望打印出数字 2
。相反,程序会打印数字 1
。
谁能解释这是为什么?
最佳答案
关于c++ - 了解在堆栈上分配的实例的 C++ 虚拟方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4718468/