一.  封装

  在定义类的时候,将属性和行为放在一起,其中属性和行为可以放在不同的权限中。属性就是变量,行为就是函数,但函数内有简单的内容。

二.  继承

  某个类在定义时,可以继承一个或多个基类,这个类叫派生类,派生类可以使用基类的除私有之外的所以属性及方法。

三.  多态

  一个接口,多种方法

  派生类的函数与基类的函数同名,参数列表也相同,且俩者都具有virtual关键字, 创建基类类型指针,指向子类对象,用基类指针调用虚函数,既可实现多太重写。

  总结:在用父类指针调用函数时,实际调用的是指针指向的实际类型(子类)的成员函数

四.  虚函数

  虚函数则是加了virtual修饰词的类的成员函数。

  虚函数实现的过程:通过对象内存中的虚函数表指针vptr找到虚函数表vtbl,接着通过vtbl找到对应虚函数的实现区域并进行调用

  构造函数和析构函数可以是虚函数吗?答案是构造函数不能是虚函数,析构函数可以是虚函数且推荐最好设置为虚函数