effectiveC++小小结

将文件间的编译依赖性降至最低:
在头文件中用指针和引用来代替实体
先声明需要的类,不要再头文件中再引用其他的头文件,让用户来引用


赋值操作函数
 缺省的赋值操作符会执行成员的逐个赋值操作,对指针来说是逐位拷贝,如b=a这样会导致2个问题:
 1)b曾指向的内存永远不会被删除,即永远丢失;2)a和b指向同一个空间,只要其中一个被删除,另一个也将被删除。


初始化列表
 尽量使用初始化而不要在构造函数里赋值,因为对const和引用数据成员只能被初始化,不能被赋值
 另外,初始化列表中成员列出的顺序和它们在类中声明的顺序相同,而不是和初始化列表中的顺序相同


operator=赋值函数
 1)给所有数据成员赋值,2)检查给自己赋值的情况(*this==ths)
 为需要动态分配内存的类声明一个拷贝构造函数和一个赋值操作符


尽量用“传引用”而不用“传值”
必须返回一个对象时不要试图返回一个引用

不要重新定义继承而来的非虚函数


编译器为类生成的函数:一个缺省构造函数,一个拷贝构造函数,一个赋值运算符,一个析构函数,一对取址运算符

你可能感兴趣的:(effectiveC++小小结)