use_virtual_func_without_pointer_left

#include <oistream>
using namespace std;

class A
{
public:
    void foo()
    {
        func();
    }
    virtual void func()
    {
        cout<<"a"<<endl;
    }
}

class B : public A
{
public:
    virtual void func()
    {
        cout<<"b"<<endl;
    }
}

void main()
{
    B* b = new B;
    b->foo();
}

运行结果是"b".我就当做是func()为this->func()了.

源头是cocos2dx的CCObject的copy()和copyWithZone().

posted on 2013-07-31 17:50  shizuka  阅读(96)  评论(0编辑  收藏  举报

导航