C++,多态的实现,语法练习

来源:互联网 发布:织梦cms是在ftp上传吗 编辑:程序博客网 时间:2024/05/08 18:25
实现多态的步骤:
1. 父类 派生出 子类
2. 父类的指针指向之类的对象
3. 子类成员函数覆盖父类的成员函数
4. 父类成员函数前加 virtual 修饰
 
 
//duotai.cpp#include <iostream>using namespace std;class cAnimal{public:// 父类 成员函数要加 virtual virtual void breath(){cout<<"动物要呼吸"<<endl;}};class cBird:public cAnimal{public:// 子类 覆盖 父类 成员函数 breathvoid breath(){cout<<"鸟要呼吸"<<endl;}};class cFish:public cAnimal{public:// 子类 覆盖 父类 成员函数 breathvoid breath(){cout<<"鱼要呼吸"<<endl;}};// 把类 cAnimal 中的虚函数breath封装起来void AnimalBreath(cAnimal& a){a.breath();}void main(){cAnimal* p; // 父类指针cBird bird;p = &bird;  // 指向之类对象p->breath();cFish fish;p = &fish;   // 指向新的类对象,实现动态绑定p->breath();//  --- 更好的应用是把 父类中的虚函数封装到一个类或者函数中,就可以公用了.cout<<"---------"<<endl;AnimalBreath(bird);AnimalBreath(fish);}



 

 

 

//---

 

虚函数限制:

1. 只有类的成员函数才能为虚函数

2. 静态函数不能为虚函数

3.内联函数不能是虚函数

4.构造函数不能是虚函数,析构函数通常是虚函数