#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(),先了子類構造發生,不會有多態行爲。