《Effective C++》 读书笔记 1

让自己习惯C++(Accustoming Yourself to C++)

1.视C++为一个联邦语言(View C++ as a federation of Languages)

   C++至少包括C部分,面向对象部分(C with class),泛型编程部分(Template C++),以及STL部分。在使用C++不同的部分时,其高效的编程守则也会发生变化。

2. 尽量以const, enum, inline替换 #define(Prefer consts,enums, and inlines to #defines)

    用const或enum替换掉宏常量,以减低在出问题时定位错误的难度,同时提供更好的封装性。用inline替换宏函数以避免宏展开时容易(某些情况下必然)发生的语义错误。

3.尽可能使用const(Use const whenever possible)

    const可帮助写出意义更简明清晰的接口。

    const可帮助编译器检测错误用法。

    const可被施加于任何作用域内的对象,函数参数,函数返回类型,函数本体等。

    编译器实施bitwise constness, 但在写程序时应实施conceptual constness。

    当const与non-const成员函数拥有等价的实现时,可用non-const成员函数调用const版本以避免代码重复。

4.确定对象使用前以被初始化(Make sure that objects are initialized before they're used)

    对内置类型手工初始化(定义时)。

    对构造函数使用初始化列表,列表中成员变量初始化顺序与其在类中声明的顺序相同。不要在构造函数中使用赋值操作进行初始化。

    对“跨编译单元的初始化次序”问题,使用local static对象替换local non-static对象。参考单件模式。

猜你喜欢

转载自www.cnblogs.com/lc19890709/p/9174929.html