#ifndef _PLOYMORPHISM__H
#define _PLOYMORPHISM__H
class CBase
{
public:
CBase()
{
init();
};
~CBase()
{};
virtual void init()
{
printf("CBase::init()\n");
};
void test()
{
init();
};
private:
};
class CDerived : public CBase
{
public:
CDerived()
{
init();
};
~CDerived()
{};
void init()
{
printf("CDerived::init()\n");
};
private:
};
void ploymorphism_test_main()
{
CBase *base = new CDerived;
base->init();
base->test();
delete base;
return;
};
#endif //_PLOYMORPHISM__H
结果:
CBase::init()
CDerived::init()
CDerived::init()
CDerived::init()
注意基类构造中的init(),先了子类构造发生,不会有多态行为。