const 用法小结
前两天看代码的时候,发现很奇怪的 const 用法,于是在网上搜了一下,原来有这么多用法,
不敢独享,拿上来和与我一样菜的小生们学习~
1. const 常量,如 const int max = 100;
优点:const 常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检
查,而对后者只进行字符替换,没有类型安全检查,并且在字符替换时可能会产生意料不
到的错误(边际效应)
2. const 修饰类的数据成员。如:
class A
{
const int size;
…
}
const 数据成员只在某个对象生存期内是常量,而对于整个类而言却是可变的。因为类可以
创建多个对象,不同的对象其 const 数据成员的值可以不同。所以不能在类声明中初始化
const 数据成员,因为类的对象未被创建时,编译器不知道 const 数据成员的值是什么。如
class A
{
const int size = 100; //错误
int array[size]; //错误,未知的 size
}
const 数据成员的初始化只能在类的构造函数的初始化表中进行。要想建立在整个类中都恒
定的常量,应该用类中的枚举常量来实现。如
class A
{…