定义一个变量表示某个常数时有一个潜在的威胁,就是这个变量可能被修改。为了避免这一点,使用const限定符,它把一个对象转变成一个常量。
const int count = 512;
注意:因为常量在定义之后应当不能被修改,所以定义之时必须被初始化。
非const变量在其它文件中的用法如下:
//file_1.cc
int count;
//file_2.cc
extern int count;//用extern 关键字声明就能使用
count++;
const变量与一般变量不同,在别的文件中的使用方法如下:
.//file_1.cc
extern const int count=fcn();//在定义时就用extern关键字声明
//file_2.cc
extern const int count;
for(int index=0;index!=count;index++)
在软件开发的时候,需要对外公开的常量放在头文件中,不需要对外公开的常量放在定义文件的头部。为了便于管理,常常把不同模块的常量集中存放在一个公共的头文件中。
有时候我们希望某些常量只在类中有效,因为#define定义的宏常量是全局的,所以想当然地认为应该用const修饰数据成员来实现。而const数据成员只在类的生存期内是常量,而对于整个类而言却是可变的,因为类可以创建多个对象,不同对象的const数据成员的值可以不同。
那么怎么才能建立在整个类中都恒定的常量呢,应该用类中的枚举常量来实现。
1091





