开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第29天 点击查看活动详情
基本介绍
基类:相当于函数的父类 派生类:相当于函数子类
-
如果基类和派生类出现同名函数怎么办?
- 如果使用基类指针或者引用对派生类中的对象进行操作,那么只能调用基类的同名函数
- 如果使用基类指针或者引用对派生类中的成员函数进行调用,那么就要使用虚函数
-
虚函数声明时要注意哪些问题?
- 首先,虚函数不能是构造函数,但是可以是析构函数
- 其次,静态成员函数不能声明为虚函数
- 最后,虚函数也不能是友元函数
虚函数简介
- 只能用类中的成员函数来作为虚函数
- 声明为虚函数的关键字为virtual
- 虚函数的作用:使得派生类对虚函数重新定义,因此,虚函数只能存在于类的继承层次结构中
- 如果使用基类中的指针或者引用操作派生类对象调用函数,那么系统就会直接调用派生类中的虚函数
- 注意:如果想要在类外面实现虚函数,那么就不能在返回值类型前面使用virtual关键字。
final关键字易混点
final关键词既可以用修饰类,也可以用来修饰虚函数,如果用来修饰类,那么这个类就不能被继承,如果用来修饰虚函数,那么这个虚函数就不能在派生类中重写。
虚析构函数易混点
- 注意:如果派生类继承基类,那么也就继承了基类的虚函数指针。
- 在c++中,不能够声明虚构造函数,但是可以声明虚析构函数:vitural前+~
- 如果在基类中声明虚析构函数,那么派生类中的析构函数都会变成虚析构函数。