Effective C++ 1.让自己习惯C++
2013-12-25 17:24
609 查看
(1) 条款01: 视C++为一个联邦语言。
(2) 条款02:尽量使用 enum, const inline 代替 #define
对于单纯常量,最好以const对象或者enums替换#defines
对于形似函数的宏,最好改用inline函数替换#define.
(3) 条款03:尽量使用const
将某些东西声明为const可帮助编译器侦测出错误用法。 const可被施加于任何作用域内的对象,函数参数,函数返回类型,成员函数本体。
当 const 和 non-const 成员函数有着实质等价的实现时, 令 non-const 版本调用 const 版本可避免代码重复。const_cast<char &>(static_cast<const TextBlock &>(*this))[position];
(4) 条款04:确定对象使用前已被初始化。
为内置类型对象进行手工初始化, 因为 C++不保证初始化她们。
构造函数最好使用 成员初值列表,而不要在构造函数本体内使用赋值操作。 初值列表列出的成员变量, 其排列次序应该和 它们在class中
声明的次序相同。
为免除 “跨编译单元 之 初始化次序” 问题,请以local static 对象替换换 non-local static 对象。
(2) 条款02:尽量使用 enum, const inline 代替 #define
对于单纯常量,最好以const对象或者enums替换#defines
对于形似函数的宏,最好改用inline函数替换#define.
(3) 条款03:尽量使用const
将某些东西声明为const可帮助编译器侦测出错误用法。 const可被施加于任何作用域内的对象,函数参数,函数返回类型,成员函数本体。
当 const 和 non-const 成员函数有着实质等价的实现时, 令 non-const 版本调用 const 版本可避免代码重复。const_cast<char &>(static_cast<const TextBlock &>(*this))[position];
(4) 条款04:确定对象使用前已被初始化。
为内置类型对象进行手工初始化, 因为 C++不保证初始化她们。
构造函数最好使用 成员初值列表,而不要在构造函数本体内使用赋值操作。 初值列表列出的成员变量, 其排列次序应该和 它们在class中
声明的次序相同。
为免除 “跨编译单元 之 初始化次序” 问题,请以local static 对象替换换 non-local static 对象。
相关文章推荐
- Effective C++ -- 让自己习惯C++
- 《Effective C++》 读书笔记(一) 让自己习惯C++
- Effective C++之一:让自己习惯C++
- Effective C++(一)让自己习惯C++
- 《Effective C++》1-让自己习惯C++
- Effective C++(一)让自己习惯C++
- 《Effective C++》第1章 让自己习惯C++-读书笔记
- Effective C++之1 让自己习惯C++
- 【读书笔记】Effective C++-1 让自己习惯C++(之一)
- Effective C++之让自己习惯C++
- Effective C++ —— 让自己习惯C++(一)
- Effective C++第一章:让自己习惯C++
- effective c++ 第一章:让自己习惯c++
- Effective C++ 3nd 读书摘要(一、让自己习惯C++ ; 二、构造,析构,赋值运算)Item1 - 12
- [Effective C++]让自己习惯C++
- 《Effective C++》让自己习惯C++:条款1-条款4
- 读书笔记 Effective C++: 01 让自己习惯C++
- Effective C++(一)让自己习惯C++
- Effective C++ ——让自己习惯C++
- Effective C++(第三版)笔记 ---- 第一部分让自己习惯C++