第47条 以同样的顺序定义和初始化成员变量
摘要:成员变量初始化的顺序要与类定义中声明的顺序始终保持一致,不用考虑构造函数初始化列表中编写的顺序,要确保构造函数代码不会导致混淆的指定不同的顺序。
第48条 在构造函数中用初始化代替赋值
摘要:在构造函数中,使用初始化代替赋值来设置成员变量,能够防止发生不必要的运行时操作,而输入代码的工作量则保持不变。
第49条 避免在构造函数和析构函数中调用虚拟函数
摘要:从构造函数或析构函数直接或间接调用未实现的纯虚拟函数,会导致未定义的行为,如果设计方案希望从基类构造函数或者析构函数虚拟分派到派生类,那么需要采用其他技术,比如后构造函数。
第50条 将基类析构函数设为公用且虚拟的,或者保护且非虚拟的
摘要:如果允许通过指向基类Base的指针执行删除操作,则Base的析构函数必须是公用且虚拟的,否则就应该是保护且非虚拟的。
第51条 析构函数、释放和交换绝对不能失败
第52条 一致地进行复制和销毁
摘要:如果定义了复制构造函数、复制赋值操作符或者析构函数中的任何一个,那么可能也需要定义另一个或者另外两个。
第53条 显式地启用或者禁止复制
摘要:应该显式的禁止复制和赋值,或者是显式的编写复制和赋值。
第54条 避免切片。在基类中考虑用克隆代替复制
第55条 使用赋值的标准形式
摘要:在实现operator=时,应该使用标准形式——具有特定签名的非虚拟形式。
第56条 只要可行,就提供不会失败的swap(而且要正确地提供)
第49条,54条没有理解