使用“override”声明的成员函数不能重写基类成员_C++基础——多态性与虚函数...

12.1多态性的概念

在面向对象的方法中,多态性是指想不同对象发送同一个消息,不同对象在接收时会产生不同的行为(方法)。其中函数重载,运算符重载都是多态性的体现。

多态性分为动态多态性和静态多态性。

  • 静态多态性是通过函数重载实现的。程序在编译的时候已经知道函数的全部信息。
  • 动态多态性是通过虚函数实现。是指在程序运行中才确定调用的那个函数

12.2利用虚函数实现动态多态性

12.2.1虚函数的作用

所谓虚函数,就是在基类声明函数是虚拟的,并不是实际存在的函数,然后在派生类中定义此函数。

虚函数的作用是允许在派生类中定义与基类同名的函数,并且可以通过基类指针或引用来访基类和派生类的同名函数。

把基类中的某个成员函数声明为虚函数后,允许在派生类中对函数进行重新定义,赋予它新的功能,并且可以通过指向基类的指针指向同一类族中的不同对象,从而调用其中同名的函数。

12.2.2静态关联与动态关联

  • 函数重载——静态关联
  • 虚函数——动态关联

12.2.3 什么情况下声明虚函数

成员函数所在的类是否会作为基类。成员函数在继承后功能有无可能被更改。若肯定则声明为虚函数。

如果成员函数需要通过基类指针去访问,则虚定义为虚函数。

有时会定义一个空的虚函数。具体功能留给派生类去添加。

12.2.4 虚析构函数

最好把基类析构函数声明为虚函数,这样派生类的析构函数自动成为虚函数。

12.3纯虚函数与抽象类

纯虚函数

纯虚函数就是在声明虚函数时被初始化为0的函数,但它只有名字,不具备函数功能,不能被调用。

virtual 

纯虚函数的作用是在基类中为其派生类保留一个函数的名字,以便派生类对它进行定义。

抽象类

不用来定义对象而只用来作为一种基本类型用作继承的类,称为抽象类,也叫抽象基类。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值