您的位置:首页 > 编程语言 > C语言/C++

effective c++之让自己习惯C++

2012-06-23 15:13 666 查看
#define Max(a, b) (a)>(b) ? (a) : (b)
//在遇到Max(++a, b )这样的调用的时候,总会带来副作用.但我们又总想宏定义带来的效率,该怎么办呢? inline
..
template<typename T>

inline T Max(const T& a, const T& b)

{

return a > b ? a : b;

}


一.视C++为一个语言联邦
其实也就是说C++组成,包括四部分:
1. c语言;
2. Object-Oriented C++,即面向对象,什么封装,继承和多态等等;
3. Template C++;
4. STL;
二.尽量以const enum inline替换#define
1. const 与 #define
#define AspectRatio 1.653

const double AspectRatio = 1.653;


预处理器”盲目地将宏名称替换为1.653”可能导致目标码出现多份1.653,若改用常量,绝不会出现此种情况.
2. enum 与 #define
这个似乎不容易遇到
3. incline与#define
最典型的例子:

这样,即获得宏一样的效率,又不会有副作用.

三.尽可能用const

四.确保对象被使用前已被初始化
1. 为内置对象进行手工初始化,因为C++不保证初始化它们.
2. 构造函数最好使用成员初值列,而不要在构造函数本体内使用赋值操作.初值列列出的成员变量,其排列次序应该和它们在class中的声明次序相同.
3. 为免除”跨编译单元之初始化次序问题”,以localstatic 对象替换 non-local static 对象.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: