C++基础知识随笔--类
- 初始化列表包含多个成员变量时,这些成员变量被初始化的顺序为他们被声明的顺序,而不是它们在初始化列表中的顺序。因此如果代码使用一个成员的值作为另一个成员的初始化表达式的一部分时,初始化顺序就非常重要。
- 私有继承:使用私有继承,基类的私有成员和保护成员都将成为派生类的私有成员(包括成员变量和成员函数)。保护继承同理。继承时默认为私有继承。
- 虚基类使得从多个类(它们的基类相同)派生出的对象只继承一个基类对象,以解决钻石继承带来的问题。
- C++在基类是虚的时,禁止信息通过中间类自动传递给基类
- 派生类中的名称优先于直接或间接祖先类中的相同名称。虚二义性与访问规则无关。
- 定义位于类声明中的函数都将自动成为内敛函数。内敛函数要求在每个使用它的文件中都对其进行定义,因此最简单的方法就是将内敛定义放在定义类的头文件中。
- 当且仅当没有定义任何构造函数时,编译器才会提供默认的构造函数
- 在默认情况下,将一个对象赋给同类型的另一个对象时,C++将源对象的每个数据成员的内容复制到目标对象中相应的数据成员中。对象重新赋值的过程:构造一个临时对象->通过赋值运算符将临时对象赋值给目标对象->析构临时对象。
- 重载后的运算符必须至少有一个操作数是用户定义的类型,以防止用户为标准类型重载运算符。
10.每个对象都包含一张虚函数表,每个对象有一个指针指向这个虚函数表。 - C++模板是C++编译指令。由于模板不是函数,它们不能单独编译。模板必须与特定的实例化请求一起使用。