类里的const和enum

来源:互联网 发布:qq抽奖软件 编辑:程序博客网 时间:2024/05/16 11:14

这一部分介绍const用于类的两种办法。程序员可能想在一个类里建立一个局部常量,

将它用在常数表达式里,这个常数表达式在编译期间被求值。然而,const的意思在

类里是不同的,所以必须使用另一技术:枚举,以达到同样的效果。


我们还可以建立一个类对象常量,为了保证一个类对象为常量,引进了const成员函数:

对于一个常量对象,只能调用const成员函数。把一个const放在类里,它会在每个类对

象里分配存储并代表一个值,这个值一旦被初始化以后就不能改变。在一个类里使用

const的意思是“在这个对象的生存期内,这是一个常量”。然而,对这个常量来讲,每个

不同的对象可以含有一个不同的值。


类里的const必须在构造函数的初始化参数列表里进行初始化。因为在类对象里进行了存

储空间分配,编译器不能知道const的内容是什么,所以不能把它用作编译期间的常量。

这意味着对于类里的常数表达式来说,其是无用的,即我们不能这样写:

class bob {

         constint size = 100;         //编译器报错

         intarray[size];          //编译器报错

};


那么怎样建立一个可以用在常数表达式里的类常量呢?一个常用的方法是用一个不带

实例的无标记enum。枚举的所有值必须在编译时建立:

class bunch {

         enum{ size = 100 };

         inti[size];

};

 


原创粉丝点击