第五章 多态

一:多态

(一)概念 

    不同的对象  对同样的消息  产生不同的行为。
    消息在C++中指  函数的调用,而多态就是允许用一个函数名的调用来实现不同的功能。 

(二)分类

 

 二:虚函数

1.格式

2.条件

3.实例

           前置                    

注:此处,本来虚函数具有传递性,但一般还是会加

结果: 

复习:!勿弄混:派生类可赋基类,基类指针可指向派生类 

三:虚析构函数

1.引入

(1) 构造函数   构造时对象还没生成,谈不上绑定对象,不能被声明为虚函数
(2) 析构函数   能被声明为虚函数吗? 需要吗?

2.作用

此处,析构时希望释放pBace和pDevice两个空间

但不使用析构virtual因为是指针只会调用基类析构——>要virtual析构

改后

结果

注意:当析构是虚的可不止调用子类,而是先子后父,给他释放干净

3.注意

   (这样相当于就调用了子类的析构)

四:纯虚函数

1.格式  virtual  void 函数名()=0;

2.作用:父类里虚函数不需要有东西,
              等着匹配了子类对象再有东西(比如纯虚析构函数,只需调用子类析构父类可一起析构

                                                                        但此时需在子类中重新定义该析构函数,原因如下)
3.抽象类只要有了纯虚函数,不管有无别的成员,都是抽象类
                 子类同理(理解:父类抽象类,子类还不对虚函数格外定义

                                          那就视作子类只有同名的纯虚函数,即抽象类)

                   

4.注意:抽象类不能创建对象(毕竟等着子类给它东西),

              抽象类的其他函数还是可在子类调用(用::即可),当然纯虚函数肯定不能调用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值