Effective C++(一)让自己习惯C++
2013-05-25 20:24
645 查看
条款1:视C++为一个语言联邦。
(1)C++是四个次语言组成的联邦,每个语言都有自己的规约。当从一个次语言移往到另一个次次语言,守则可能要改变。
(2)C++共有四个次语言组成:
*C。
*Object-oriented C++。
*Template C++。
*STL。
条款2:尽量以const,enum,inline替换#define。
(1)对于单纯常量,最好以const对象或enum代替#define。
(2)对于形似函数的宏,最好改用inline函数替换#define。
条款3:尽可能多使用使用const。
(1)const与指针:
*const type *ptr或type const *ptr:被指对象是常量。
*type *const ptr:const指针。
*const type *ptr:指针和被指对象都是const。
条款4:确定对象被使用前已被初始化。
(1)对于内置类型必须手工初始化,因为C++不保证初始化它们。
*内置类型变量是否初始化取决于变量定义的位置:在函数体外定义的变量都初始化为0;在函数体内定义的内置类型变量不进行自动初始化。
*类中的内置类型变量成员是否初始化取决于类对象的作用域:局部作用域的对象的内置类型成员不自动进行初始化;全局作用域的对象的内置类型成员初始化为0.
(2)构造函数最好使用成员初始化列表,而不要在构造函数体内使用赋值操作。
*对于类类型使用初始化列表比函数体内复制操作效率高;内置类型一样。
*从概念上说,可以认为构造函数分为两个阶段运行:1)初始化阶段;2)普通计算阶段,计算阶段由构造函数函数体中的所有语句组成。不管成员是否在构造函数的初始化列表中,类类型的数据成员总是在初始化阶段初始化,初始化发生在计算阶段开始之前。
(3)C++有着固定的“成员初始化次序”:base class早于driver classes被初始化,而class的成员变量总是以其声明次序被初始化。
(1)C++是四个次语言组成的联邦,每个语言都有自己的规约。当从一个次语言移往到另一个次次语言,守则可能要改变。
(2)C++共有四个次语言组成:
*C。
*Object-oriented C++。
*Template C++。
*STL。
条款2:尽量以const,enum,inline替换#define。
(1)对于单纯常量,最好以const对象或enum代替#define。
(2)对于形似函数的宏,最好改用inline函数替换#define。
条款3:尽可能多使用使用const。
(1)const与指针:
*const type *ptr或type const *ptr:被指对象是常量。
*type *const ptr:const指针。
*const type *ptr:指针和被指对象都是const。
条款4:确定对象被使用前已被初始化。
(1)对于内置类型必须手工初始化,因为C++不保证初始化它们。
*内置类型变量是否初始化取决于变量定义的位置:在函数体外定义的变量都初始化为0;在函数体内定义的内置类型变量不进行自动初始化。
*类中的内置类型变量成员是否初始化取决于类对象的作用域:局部作用域的对象的内置类型成员不自动进行初始化;全局作用域的对象的内置类型成员初始化为0.
(2)构造函数最好使用成员初始化列表,而不要在构造函数体内使用赋值操作。
*对于类类型使用初始化列表比函数体内复制操作效率高;内置类型一样。
*从概念上说,可以认为构造函数分为两个阶段运行:1)初始化阶段;2)普通计算阶段,计算阶段由构造函数函数体中的所有语句组成。不管成员是否在构造函数的初始化列表中,类类型的数据成员总是在初始化阶段初始化,初始化发生在计算阶段开始之前。
(3)C++有着固定的“成员初始化次序”:base class早于driver classes被初始化,而class的成员变量总是以其声明次序被初始化。
相关文章推荐
- effective C++ 1.让自己习惯C++
- Effective C++ ——让自己习惯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++-1 让自己习惯C++(之三)
- 《Effective C++》让自己习惯C++:条款1-条款4
- 《Effective C++ 3》01 让自己习惯C++ 条款:01-04
- Effective C++ --1 让自己习惯C++
- Effective C++ 读书笔记(一)让自己习惯C++
- 【Effective C++】条款01-让自己习惯c++
- Effective C++(一)让自己习惯C++
- 《Effective C++ 3/e》笔记(一):让自己习惯 C++
- 【读书笔记】Effective C++-1 让自己习惯C++(之二)
- Effective c++ 第一章 让自己习惯C++
- Effective C++(第三版)笔记 ---- 第一部分让自己习惯C++