Effective C++(一)让自己习惯C++
来源:互联网 发布:淘宝运费险 编辑:程序博客网 时间:2024/05/09 20:22
条款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的成员变量总是以其声明次序被初始化。
- Effective C++(一)让自己习惯C++
- Effective C++(一)让自己习惯C++
- Effective C++(一)让自己习惯C++
- 《Effective C++》 读书笔记(一) 让自己习惯C++
- Effective C++学习笔记一(让自己习惯C++)
- Effective C++ — 让自己习惯C++(一)
- effective c++-让自己习惯c++
- 《Effective C++》第一章:让自己习惯C++
- 《Effective C++》1-让自己习惯C++
- 【读书笔记】Effective C++-1 让自己习惯C++(之一)
- 【读书笔记】Effective C++-1 让自己习惯C++(之二)
- 【读书笔记】Effective C++-1 让自己习惯C++(之三)
- 《Effective C++》让自己习惯C++:条款1-条款4
- Effective C++读书笔记1(让自己习惯C++)
- Effective C++读书笔记1(让自己习惯C++)
- 【Effective C++】条款01-让自己习惯c++
- Effective C++ 第一章(让自己习惯C++)
- <<Effective C++>>读书笔记1: 让自己习惯C++
- Oracle Flashback技术总结(三)—— Flashback Query
- 第十一堂课后作业
- java中基本类型占用字节数
- spring入门(15)---execution匹配符解析
- HANA1
- Effective C++(一)让自己习惯C++
- 监控--采集卡与编码器的比较
- C++ 数组与字符串长度sizeof()、strlen()、string的length()和size()
- HANA2
- Android导入工程错误(No projects are found to import)
- 分享:sp_type返回表结构字段类型及长度等
- 一个老程序员的十年回顾
- Android SDK中 tools 目录下的工具介绍
- 数据库市场需要真正的突破