例1
#include<iostream>
using namespace std;
class CWater
{
public:
virtual void Show() //virtual 虚函数的关键字 (它叫虚函数)
{
}
};
class CBeer :public CWater
{
public:
void Show()
{
cout << "Beer" << endl;
}
};
class CMilk :public CWater
{
public:
void Show()
{
cout << "Milk" << endl;
}
};
class CCoco :public CWater
{
public:
void Show()
{
cout << "Coco" << endl;
}
};
void Drink(CWater *water)
{
water->Show();
}
int main()
{
CWater *beer=new CBeer;
Drink(beer);
CWater *milk=new CMilk;
Drink(milk);
CWater *coco=new CCoco;
Drink(coco);
system("pause");
return 0;
}
运行结果:
例2
#include<iostream>
using namespace std;
class CPerson
{
public:
virtual int Get()
{
return 0;
}
public:
void Show()
{
cout << "qqqq" << endl;
cout << "wwww" << endl;
cout << "eeee" << endl;
cout << "rrrr" << endl;
cout << Get() << endl;
}
};
class CChina :public CPerson
{
public:
int Get()
{
return 1;
}
};
class CJapan :public CPerson
{
public:
int Get()
{
return 2;
}
};
class CUsa :public CPerson
{
public:
int Get()
{
return 3;
}
};
int main()
{
//利用父类的指针,去调用子类中的函数,实现父类指针的多态性;
CPerson *china=new CChina;
china->Show();
CPerson *Japan=new CJapan;
Japan->Show();
CPerson *Usa=new CUsa;
Usa->Show();
system("pause");
return 0;
}
运行结果: