〈23,读书笔记——林锐·高质量C编程指南:卷5——常量〉
常量通常用define或const来定义,用作有效的数值或字符串替换
——————————————————————————
1,const和define定义常量的区别
1.1 const常量有数据类型,建议C++中用const。使用define时注意用充足的括号
1.2 有些调试工具不支持宏常量,综合建议使用const
2,常量定义规则
2.1 需要公开的一般放在头文件里,不需要的放在定义文件里。
通常为了便于管理,将不同模块里的常量放至同一个公共头文件里。
2.2 相关常量放一块
3,类中的常量
若用const来修饰类中数据成员,则该成员只在某个对象的生存期内是有效的——对类而言是可变的。
一般而言,我们不可以在类内直接这样定义const数据成员,而在类构造函数的初始化列表里进行该常量的初始化。
举例如下:
class A
{
A(int size);
const int SIZE;
};
A :: A(int size):SIZE(size)//构造函数的初始化表
{
}
A a(100);
A b(200);
而最终,要想创建个在整个类中都恒定的常量,不要指望const了,而该用枚举常量(只能是整形)
如
class A
{
enum
{
SIZE1 = 100,
SIZE2 = 200
};
int a[SIZE1];
int b[SIZE2]
};