一. 封装
在定义类的时候,将属性和行为放在一起,其中属性和行为可以放在不同的权限中。属性就是变量,行为就是函数,但函数内有简单的内容。
二. 继承
某个类在定义时,可以继承一个或多个基类,这个类叫派生类,派生类可以使用基类的除私有之外的所以属性及方法。
三. 多态
一个接口,多种方法
派生类的函数与基类的函数同名,参数列表也相同,且俩者都具有virtual关键字, 创建基类类型指针,指向子类对象,用基类指针调用虚函数,既可实现多太重写。
总结:在用父类指针调用函数时,实际调用的是指针指向的实际类型(子类)的成员函数
四. 虚函数
虚函数则是加了virtual修饰词的类的成员函数。
虚函数实现的过程:通过对象内存中的虚函数表指针vptr找到虚函数表vtbl,接着通过vtbl找到对应虚函数的实现区域并进行调用
构造函数和析构函数可以是虚函数吗?答案是构造函数不能是虚函数,析构函数可以是虚函数且推荐最好设置为虚函数