effective C++ 使用条款(一)——item1~item33总结

第一章:从c转向c++

条款1:尽量使用const、inline代替define——尽量使用编译器而不是预处理器

  define是预处理阶段的宏替换,使用宏替换不便于调试,因为宏替换所使用的别名并不会在编译器生成的符号列表中。如果要定义常量,应该使用const,对于常字符串,则应该使用const char * const,当const只在类中使用时,为了只存在一份拷贝,应该定义为static如:

const char * const strdlversion = "1.0.0.1"
const double PI = 3.14.5926
class ci{
   
    ...
    static const int MAX_FILE_PATH_LENGTH = 256;
};

另外还可以使用模板来取代宏以实现多种类型的某一功能,例如:

#define swap(a,b) do \
{\
    a = a + b;\
    b = a - b;\
    a = a - b;\
} while (0);

template<typename U,typename V>
inline swap(U &u, V &v) {
    U tmp = (U)v;
    v = (V)u;
    u &#
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值