条款02:尽可能使用const, enum, inline替代define
来源:互联网 发布:小照域名授权源码2.9 编辑:程序博客网 时间:2024/06/05 11:41
(1)#define ASPEC_RATIO 1.653
替代为: constdouble AspectRatio = 1.653;
因为define名称ASPEC_RATIO也许从未被编译器看见,那么她就没有进入记号表,那么在获取错误信息的时候,就可能浪费时间去获得1.653的意思。
关于class的专属常量,为了将常量的作用域限制于class内,你必须让它成为一个成员,而为了确保此常量至多只有一根实体,你必须让他成为一个static成员,
classGamePlayer {
private:
static const int NumTurns = 5; //常量声明式
int scores[NumTurns];
…
};
然而你所看到的是NumTurns的声明式,而不是定义式,通常C++要求你对你所使用的任何东西提供一个定义式,但是如果它是一个class专属常量又是static且为整数类型,则需要特殊处理。定义式如下
const intGamePlayer::NumTurns; //NumTurns的定义
请把这个式子放在一个实现文件而不是头文件中,由于class常量已在声明时候获得初期,因此定义的时候不可以在设置初值。
也可以使用枚举类型
classGamplayer {
private:
enum{ NumTurns = 5; };
intscores[NumTurns];
…
};
(2)template<typename T>
inline void CallWithMax(const T&a, constT&b)
{
if(a> b? a : b);
}
(3)对于单纯常量,最好以const对象或enums替换#define
对于类似函数的宏,最哈改用inline函数替换#define
- 条款02:尽可能使用const, enum, inline替代define
- 使用const,enum,inline template<>替代#define
- 条款02:尽量以const,enum,inline替换#define(Prefer const,enum,inline to #define)
- 条款02:尽量以const,enum,inline替换#define
- 条款02:尽量以const, enum, inline 替换 #define
- 条款02 尽量以const ,enum,inline替换#define
- 条款02:尽量以const、enum、inline替换#define
- 条款02:尽量以const,enum,inline替换#define
- 条款02 尽量以const enum inline 替换#define
- 条款02:尽量以const, enum, inline 替换#define
- 条款02:尽量以const ,enum,inline 替换 #define
- 条款02:尽量以const,enum,inline替换#define
- 条款02:尽量以const,enum,inline替换#define
- 条款02:尽量以const,enum,inline替换#define
- 用const、enum、inline替代#define
- 用const、enum、inline替代#define
- 条款2:尽量以CONST,ENUM,INLINE替换#DEFINE
- 条款2:尽量以const,enum,inline替换#define
- 条款03:use const whenever possible
- 使用 vmware-vdiskmanager增加虚拟机中的磁盘空间
- Latex论文排版技巧再总结
- 问题汇总!!!
- 使用AspectJ为Java程序添加日志管理
- 条款02:尽可能使用const, enum, inline替代define
- 移动技术开发之谜
- 教你如何迅速秒杀99%的海量数据处理面试题
- Google Maps in QlikView
- 自动sga内存管理
- RSS源推荐大全(it版)
- MYSQL数据库备份命令
- Eclipse反编译工具Jad及插件JadClipse配置
- 增加tomcat jvm的虚拟内存