c++多态

#include <cstdio>

using namespace std;

class Base {
public:
    virtual void A()
    {
        puts("Base::A called");
    }
};

class D : public Base
{
public:
    virtual void A()
    {
        puts("D::A called");
    }
};

int main()
{
    D* d = new D;
    d->Base::A();
    (d->Base::A)();
    void (Base::*ptr) () = &Base::A;
    (d->*ptr)();
    delete d;
}

运行结果

Base::A called
D::A called
D::A called

加不加括号会决定是否表现出多态行为

原文地址:https://www.cnblogs.com/niukuo/p/5567603.html