常量成员函数不能被常量成员对象调用。
只要类里有指针时,就要写自己版本的拷贝构造函数和赋值操作符函数。
非常量成员函数不能被常量对象调用。
对象创建分2步:1. 数据成员初始,2. 构造函数体内。
类成员按照它们在类里被声明的顺序进行初始化的,和它们在初始化列表中列出的顺序没一点关系。
const和引用数据成员只能被初始化。
修改一个“返回值为固定类型”的函数的返回值是不合法的。
mutable修饰的数据成员可以在任何地方修改,即使在const成员函数里。
当对象的类型不影响类中函数的行为时,就要使用模板来生成这样一组类。
当对象的类型影响类中函数的行为时,就要使用继承来得到这样一组类。
类型T影响类的行为吗?如果T不影响行为,你可用模板;如果T影响行为,你就需要虚函数,从而使用继承。
私有继承意味着“用...实现”的关系。
私有继承在软件“设计”过程中毫无意义,只有在软件“实现”时才有用。
非虚继承时,基类构造函数是由紧临的派生类的成员初始化列表指定的。
虚基类的构造函数则不同,它的参数由继承结点中最底层派生类的成员初始化列表指定。
如果想让一个包含引用或常量的类支持赋值,就必须自己定义赋值运算符,缺省运算符不起作用。
local class不能定义static成员变量,也不能访问non-static局部变量。