effective c++ 之代替#define
2014-02-17 22:01
239 查看
条款1:视C++为语言联邦
1、C:blocks\statements\preprocessor\built_in data types\array\pointerObject-oriented c++,2、c with classes:class,encapsulation,inheritance,polymorphism,virtualfunction(动态绑定)。。。
3、Template C++:generic programming 的一部分,良好的守则,唯template适用。
4、STL,是个template程序库,containers,iterators,algorithms,functions objects
条款2:尽量以const,enum,inline替换#define
用#define的坏处1、无法追踪错误,
#define ASPECT_RATION 1.635
错误信息会提示1.635
解决之道,const double AspectRation =1.635;
2、编译器会盲目的替换为1.635导致目标代码出现多分1.635,改用变量只存在一份。
3、两种特殊的情况需要说明
3.1 常量指针,由于常量定义式,通常被放在头文件之内,有必要将指针(而不是指针所指的数据)声明为const,
const std::string authorname("swfa1");
3.2 class的专属常量,为了将作用域scope限定在class范围内,必须要让他成为class的一个成员(member)而为确保此常量最多只有一个实体,必须将它声明为static
class GamePlayer { private: static const int NumTurns = 5;//常量声明 int scores[NumTurns]; //可以使用该常量 };
以上是声明式,如果需要,。可以有以下定义式,但是一般情况只要不使用地址,就不需要定义式。
const int GamePlayer::NumTurns;//NumTurns 定义
这个式子在.cpp中出现。
#define不能创建一个class范围内的专属变量。除非#udef
enum 不能取地址,const可以,#define不可。
inline函数:
http://www.cplusplus.com/articles/G3wTURfi/
条款三:尽可能使用const
const:告诉编译器这个变量是不可改变的。约束const * 是指针常量,指针是常量
*const 是指向常量的指针。被指物是常量
http://xinklabi.iteye.com/blog/653643:引用和指针的区别
相关文章推荐
- 读书笔记《Effective c++》 条款02 尽量用const,enum,inline代替#define
- Effective C++ (用 const enum inline 替换#define)
- Effective C++_笔记_条款02_尽量以const、enum、inline替换#define
- 第二条:尽量以const、enum、inline代替#define
- Effective C++ 条款02 尽量以const,enum,inline替换#define
- Effective C++学习笔记 条款02:尽量以const,enum,inline替换 #define
- [Effective C++]条款02:尽量以const,enum,inline 替换#define
- effective C++(第三版)读书笔记一——条款二:尽量以const,enum,inline替换#define
- 2.尽量用const, enum, inline代替#define -- Prefer const, enum, inline to #define.
- Effective C++(一)尽量使用const和inline来替代#define
- 条款02:尽量以const,enum,inline代替#define
- 《effective c++》条款二:尽量以enum,const,inline替换#define
- 《Effective C++》读后总结(二)尽量以const,enum,inline替换#define
- 条款2 尽量用const,enum,inline代替#define
- Effective C++ 条款1:尽量用const和inline而不用#define
- Effective C++ 之 Item 2:尽量以 const, enum, inline 替换 #define
- 重读经典-《Effective C++》Item2:尽量以const,enum,inline替换#define
- effective C++ 条款 1:尽量用const和inline而不用#define
- Effective C++学记之02 使用const enums inline来代替#define
- 《Effective C++》条款02:尽量以const,enum,inline替换#define