真的很抱歉标题,如果有合适的标题,请更改为该标题。
我在下面的示例代码中写了一些理解虚函数的代码。
class A {
public:
virtual int f() {cout << "1";};
};
class B : public A {
public:
int f() {cout << "2";}
};
int main()
{
A a = *new B();
A* c = &a;
c->f();
A* pa = new B();
pa->f();
B* b;
}
上面的代码输出12,我希望它将输出22。
我认为,当从指针调用虚拟函数时,它会动态绑定。所以,我不明白为什么上面的输出不同。