常量

常量

C语言中用#define 来定义常量(宏常量)

C++中除了用#define 之外,还可以使用const 来定义常量(const常量)

1. 使用目的:

程序的可读性增强

输入同样的数字或者字符串更加方便

如果要进行修改,只需要修改定义的常量即可,操作方便

2. const 与#define 的比较

const 常量有数据类型,宏常量没有数据类型。

编译器可以对const常量进行类型安全检查,宏常量只能进行简单的字符替换,而且可能产生边界效应

有些集成化的调试工具可以对const 常量进行调试,但是不能对宏常量进行调试

C++中const 常量完全取代宏常量。

3. 类中的常量(重点关注)

#define 定义的常量是全局的,但我们只希望它在某个类中有效,只能用const 来修饰数据成员,但是含义是:const 数据成员只在某个对象生存期内是常量,但是对于整个类来说却是可变的,因为类可以创建多个对象,不同的对象const 数据成员不同

!!不能在类声明中初始化const数据成员


结果生成失败

const 数据成员初始化只能在类构造函数的初始化表中进行

class A
{
public:
        const int  SIZE;
        A(int size):SIZE(size)//只能在类的初始化表里进行
        {
               cout<<"A::A(int)"<<endl;
        }
         ~A()
         {
                  cout<<"A::~A()"<<endl;
     
         }
private:
         int m;
};

void main()
{
  A   a(100);
  A   b(200);
}


结果运行成功。

建立在整个类中都恒定的常量:用枚举常量来实现

enum{ SIZE1  = 10, SIZE2 = 20};

枚举常量不会占用对象的存储空间,在编译时被全部求值,

但是枚举的隐含数据类型是整型,不能表示浮点数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值