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

#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 对象.

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值