赞
踩
示例代码:
#include<iostream> using namespace std; //只要有一个纯虚函数,就成为抽象类 class Animal { public: virtual void eat() = 0;//纯虚函数 virtual void sleep() = 0;//纯虚函数 virtual void run() = 0;//纯虚函数 }; class Tiger : public Animal { public: //重写了纯虚函数,相当于实现了接口 virtual void eat() { cout << "吃肉!" << endl; } virtual void sleep() { cout << "趴着睡!" << endl; } virtual void run() { cout << "飞奔!" << endl; } }; class Panda : public Animal { public: //重写了纯虚函数,相当于实现了接口 virtual void eat() { cout << "吃竹子!" << endl; } virtual void sleep() { cout << "躺着睡!" << endl; } virtual void run() { cout << "慢腾腾走!" << endl; } }; //想扩展一个猫类 class Cat : public Animal { public: //重写了纯虚函数,相当于实现了接口 virtual void eat() { cout << "吃鱼!" << endl; } virtual void sleep() { cout << "白天睡!" << endl; } virtual void run() { cout << "忽快忽慢走!" << endl; } }; //调用无需改变 void show(Animal *p) { p->eat(); p->run(); p->sleep(); } int main() { //多态性的表现 Tiger t; show(&t); Panda p; show(&p); //扩展,没有更改任何原来的代码,只是增加 Cat c; show(&c); return 0; }
效果如下:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。