条款25:避免对指针和数字类型重载
因为0既可以是一个整型值,也可以是空指针。
条款26:当心潜在的二义性
二义性当然要避免,本条款强调的是“潜在”二字。很多时候,二义性会隐藏得很深,所以要尽可能地小心。
条款27:如果不想使用隐式生成的函数就要显示地禁止它
有些函数,当你没有声明定义它们时,编译器会自动为你生成,但它们是基于默认语义的,所以如果这不是你想要的,就需要显示地禁止它们。
条款28:划分全局名字空间
避免名字冲突,从而带来一些益处。
条款29:避免返回内部数据的句柄
这样可以尽量保证对象的封装性,避免悬浮句柄等问题。
条款30:避免这样的成员函数:其返回值是指向成员的非const指针或引用,但成员的访问级比这个函数要低
否则会破坏封装性
条款31:千万不要返回局部对象的引用,也不要返回函数内部用new初始化的指针的引用
前者会造成野指针(引用)问题,后者会造成内存泄露。
条款32:尽可能地推迟变量的定义
”推迟变量定义可以提高程序的效率,增强程序的条理性,还可以减少对变量含义的注释。“
”