《高质量C/C++》第5章 常量

本文探讨了C++中使用const成员变量及枚举作为常量的方法,包括如何正确初始化const成员变量,以及枚举类型的优缺点。

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)枚举常量的缺点:

第一:它的隐含数据类型是整数;

第二:最大值有上限;

第三:不能表示浮点数;



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值