一、多重继承
1、多重继承是从多于一个直接基类派生类的能力,多重继承的派生类继承其所有父类的属性。
2、在多重继承下,派生类的对象包含每个基类的对象。
3、(多重继承)构造函数初始化式只能控制用于初始化基类的值,不能控制基类的构造次序。
4、对于多重继承,派生类的指针或引用可以转换为其任意基类的指针或引用。
5、当一个类继承于多个基类的时候,那些基类之间没有隐含的关系,不允许使用一个基类的指针访问其他基类的成员。(注:该特性可以用于权限访问控制。)
6、假定所有根基类都将它们的析构函数适当定义为虚函数,那么,无论通过哪种指针类型删除对象,析构函数的处理都是一致的。
7、多个基类可能导致二义性。(注:主要是指同名函数,并且不区分参数列表,只要函数名字相同,就会导致二义性。)
二、this指针
1、成员函数具有一个附加的隐含形参,即指向该类对象的一个指针。这个隐含形参命名为this,与调用成员函数的对象绑定在一起。成员函数不能定义this形参,而是由编译器隐含地定义。
2、当我们需要将一个对象作为整体引用而不是引用对象的一个成员时,我们需要在成员函数内部显式引用this。
3、在普通的非const成员函数中,this的类型是一个指向类型的const指针,可以改变this所指向的值,但不能改变this所保存的地址。在const成员函数中,this的类型是一个指向const类型对象的const指针。既不能改变this所指向的对象,也不能改变this所保存的地址。
4、不能从const成员函数返回指向类对象的普通引用。const成员函数只能返回this作为一个const引用。