c++虚函数经典例子演示

来源:互联网 发布:淘宝试衣服软件 编辑:程序博客网 时间:2024/06/07 07:14



经典例子:


复制代码
 1 #include <iostream> 2  3 using std::cout; 4 using std::cin; 5 using std::endl; 6  7 // 基类 8 class Fruit{ 9 public:10     virtual void print(){11         cout<< "Fruit" <<endl;12     }13 };14 15 class Banana: public Fruit{    // 一定要共有继承16 public:17     void print(){            // 此处可省略virtual关键字,但是函数原型要与Fruit中虚函数 void print(); 完全一致18         cout<< "Banana" <<endl;19     }20 };21 22 class Apple: public Fruit{23 public:24     void print(){25         cout<< "Apple" <<endl;26     }27 };28 29 class Pear: public Fruit{30 public:31     void print(){32         cout<< "Pear" <<endl;33     }34 };35 36 class Peach: public Fruit{37 public:38     void print(){39         cout<< "Peach" <<endl;40     }41 };42 43 int main(void)44 {45     Banana ban;46     Apple ape;47     Pear par;48     Peach pch;49     Fruit *frt[] = {&ban, &ape, &par, &pch};50 51     for(int i = 0; i < 4; i++)52         frt[i]->print();        // 一个基类指针,分别调用不同的子类对象(动态多态)53 54     system("PAUSE");55     return 0;56 }
复制代码


c++博大精深,封装,继承,多态是c++的三大特征,c++很强大,但是强大的东西理解起来就是要比不强大的难一点,所以现在看看

c++的多态:

多态条件:1.必须是公有继承。2.必须是虚函数

一个好的程序要对修改封闭,对扩展开放,虚函数就能很好的解决这个问题,基类的指针指向子类的对象并调用子类的同名函数,要实现这种效果,就得用虚函数

关键字:virtual 

虚函数的注意点:1.必须是普通成员函数(可以是常成员,不能是静态成员,不能使全局函数)2.内联函数不会是虚函数3.构造函数不能为虚函数(析构函数一般声明为为虚函数)


原创粉丝点击