1.C语言使用#define 来定义宏常量,且#define定义的宏常量都是全局的;
2.希望某些常量只在类对象中是常量;
方案:在类声明中定义const 常量;此时类对象的const常量,也就是类的成员变量只能在构造函数的初始化表中进行;
1)使用const数据成员定义类中常量的错误方式举例:
class A
{
const int SIZE = 100;// 错误 不能在类声明中初始化const常量
int array[SIZE];//还没有实例化,不知道SIZE的值是什么?
}
2)使用const常量表现类对象中的常量的初始化方式:const 成员变量只能在类的构造函数的初始化表中进行
class A
{
A(int iSize);
const int SIZE;
}
A::A(int iSize):SIZE(100)
{
}
A a(100);//对象a的SIZE值为100
A b(200);//对象b的SIZE值为200
3.希望某些常量只在类中是常量;
方案:别指望const成员变量了,应该用类中的枚举常量来实现。
1)举例:
class A
{
enum{
SIZE1= 100,
size2= 200
}; //注意此处的;
int array1[SIZE1];
int array[SIZE2];
}
2)枚举常量的缺点:
第一:它的隐含数据类型是整数;
第二:最大值有上限;
第三:不能表示浮点数;
本文探讨了C++中使用const成员变量及枚举作为常量的方法,包括如何正确初始化const成员变量,以及枚举类型的优缺点。

被折叠的 条评论
为什么被折叠?



