C++编程规范之构造、析构与复制(读书笔记)

第47条 以同样的顺序定义和初始化成员变量
摘要:成员变量初始化的顺序要与类定义中声明的顺序始终保持一致,不用考虑构造函数初始化列表中编写的顺序,要确保构造函数代码不会导致混淆的指定不同的顺序。

第48条 在构造函数中用初始化代替赋值
摘要:在构造函数中,使用初始化代替赋值来设置成员变量,能够防止发生不必要的运行时操作,而输入代码的工作量则保持不变。

第49条 避免在构造函数和析构函数中调用虚拟函数
摘要:从构造函数或析构函数直接或间接调用未实现的纯虚拟函数,会导致未定义的行为,如果设计方案希望从基类构造函数或者析构函数虚拟分派到派生类,那么需要采用其他技术,比如后构造函数。

第50条 将基类析构函数设为公用且虚拟的,或者保护且非虚拟的
摘要:如果允许通过指向基类Base的指针执行删除操作,则Base的析构函数必须是公用且虚拟的,否则就应该是保护且非虚拟的。

第51条 析构函数、释放和交换绝对不能失败

第52条 一致地进行复制和销毁
摘要:如果定义了复制构造函数、复制赋值操作符或者析构函数中的任何一个,那么可能也需要定义另一个或者另外两个。

第53条 显式地启用或者禁止复制
摘要:应该显式的禁止复制和赋值,或者是显式的编写复制和赋值。

第54条 避免切片。在基类中考虑用克隆代替复制

第55条 使用赋值的标准形式
摘要:在实现operator=时,应该使用标准形式——具有特定签名的非虚拟形式。

第56条 只要可行,就提供不会失败的swap(而且要正确地提供)

第49条,54条没有理解 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值