常量_高质量C++/编程指南

第五章 常量

const和#define

const 常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安 全检查。而对后者只进行字符替换,没有类型安全检查,并且在字符替换可能会 产生意料不到的错误(边际效应)。

#define MAX 100 /* C 语言的宏常量 */ 
const int MAX = 100; // C++ 语言的 const 常量 
const float PI = 3.14159; // C++ 语言的 const 常量

需要对外公开的常量放在头文件中,不需要对外公开的常量放在定义文件的头部。为便于管理,可以把不同模块的常量集中存放在一个公共的头文件中。

类中的常量

#define 定义的宏常量是全局的

const修饰数据成员来实现某些常量只在类中有效。const数据成员只在某个对象生存期内是常 量,而对于整个类而言却是可变的,因为类可以创建多个对象,不同的对象其const数 据成员的值可以不同。

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

枚举常量enum

枚举类型(enumeration)是 C++ 中的一种派生数据类型,它是由用户定义的若干枚举常量的集合。是一种由程序员定义的数据类型,其合法值是与它们关联的一组命名整数常量

enum <数据类型名> {<枚举常量表>};
//关键字enum——指明其后的标识符是一个枚举类型的名字;

enum color {RED, BLUE, WHITE, BLACK}; // 定义枚举类型color,4个枚举变量值依次默认为:0,1,2,3
enum { SIZE1 = 100, SIZE2 = 200}; // 枚举常量

//枚举常量只能以标识符形式表示,而不能是整型、字符型等文字常量.

//枚举常量表——由枚举常量构成。"枚举常量"或称"枚举成员",是以标识符形式表示的整型量,表示枚举类型的取值。各枚举常量之间以","间隔,且必须各不相同,且枚举变量一般是以大写字母表示(或首字母大写);
枚举类型的创建与使用
enum week {Sun, Mon, Tue, Wed, Thu, Fri, Sat};    //声明枚举类型

week day;  //定义week数据类型的变量, 数据类型名称week,变量名称day
day=Sun;      //为创建的变量day赋值,赋值为Sun
cout<<day<<endl;  //枚举变量可以直接输出,输出结果为0

//声明枚举类型color,并创建枚举类型变量color1, color2

enum color {RED, BLUE, WHITE, BLACK} color1, color2,color3,color4;
color3=RED;           //将枚举常量值赋给枚举变量
color4=color3;        //相同类型的枚举变量赋值,color4的值为RED

//比较同类型枚举变量color3,color4是否相等
if (color3==color4) cout<<"相等"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值