C ++:对于不同的实例,调用虚拟函数具有不同的行为

时间:2018-08-30 18:46:19

标签: c++ virtual-functions dynamic-binding

真的很抱歉标题,如果有合适的标题,请更改为该标题。

我在下面的示例代码中写了一些理解虚函数的代码。

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。

我认为,当从指针调用虚拟函数时,它会动态绑定。所以,我不明白为什么上面的输出不同。

0 个答案:

没有答案