《大规模C++程序设计》读书笔记30

来源:互联网 发布:罗斯切尔德家族 知乎 编辑:程序博客网 时间:2024/05/22 01:37

Technorati 标签: C++,大规模C++程序设计,读书笔记

定义51:如果一个基本类型实例的大小能整除其地址值,那么它是自然对齐的(naturally alligned)

定义52:一个聚集类型的实例,如果其对齐要求最严格的子类型的排列能整除聚集的地址,那么它是自然对齐的

原则110:声明数据成员的次序能够影响对象的大小。

指导方针36:只有在已知这样做安全时,才能为了优化在实现中用short代替int。

指导方针37:即使在实现中也尽量不要考虑使用unsigned。

原则111:在实现中使用unsigned类型以“提高一点性能”,是基本的整数类型没有大到足够安全的标志。

用unsigned short,不如用int,因为用short可能造成的孔洞可能足够放一个int了。

 

原则112:自然的包括其边界条件的算法,通常比将边界条件作为特殊情况处理的算法更简单、更短小、更易于理解和测试。

原则113:通过增加一个额外的间接层能解决很多问题。

 

赋值运算符可以根据基本的析构和拷贝构造函数来实现:

#include "new.h"// declare placement syntaxT& T::operator=(const T& that) {if (this != &that) {// check for x = xT::~T();// destroy object in placenew(this) T(that);// construct object in place}return *this;// return reference to this object}
 

原则114:在一个组件中分解出一般可重用的功能,可以减少代码长度并提高可靠性,而不会损失太多的运行时性能。

指导方针38:在设计一个函数、组件、包或完整的系统时,使用最简单的有效技术。

原创粉丝点击