niuk

 

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

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

posted on 2016-06-07 17:07  niuk  阅读(103)  评论(0编辑  收藏  举报

导航