c++虚函数经典例子

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

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

c++的多态:

多态条件:

1.必须是公有继承。

2.必须是虚函数

一个好的程序要对修改封闭,对扩展开放,虚函数就能很好的解决这个问题,

基类的指针指向子类的对象并调用子类的同名函数,要实现这种效果,就得用虚函数

关键字:virtual 

虚函数的注意点:

1.必须是普通成员函数(可以是常成员,不能是静态成员,不能使全局函数)

2.内联函数不会是虚函数

3.构造函数不能为虚函数(析构函数一般声明为为虚函数)

经典例子:

 1 #include  2 3using std::cout;
 4using std::cin;
 5using std::endl;
 6 7// 基类 8class Fruit{
 9public:
10virtualvoid print(){
11         cout<< "Fruit"<<endl;
12    }
13};
1415class Banana: public Fruit{    // 一定要共有继承16public:
17void print(){            // 此处可省略virtual关键字,但是函数原型要与Fruit中虚函数 void print(); 完全一致18         cout<< "Banana"<<endl;
19    }
20};
2122class Apple: public Fruit{
23public:
24void print(){
25         cout<< "Apple"<<endl;
26    }
27};
2829class Pear: public Fruit{
30public:
31void print(){
32         cout<< "Pear"<<endl;
33    }
34};
3536class Peach: public Fruit{
37public:
38void print(){
39         cout<< "Peach"<<endl;
40    }
41};
4243int main(void)
44{
45    Banana ban;
46    Apple ape;
47    Pear par;
48    Peach pch;
49     Fruit *frt[] = {&ban, &ape, &par, &pch};
5051for(int i = 0; i < 4; i++)
52         frt[i]->print();        // 一个基类指针,分别调用不同的子类对象(动态多态)5354     system("PAUSE");
55return0;
56 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值