在类中定义符号常量类型

主要有两种方式:

  • 静态变量  static const int
  • 类中定义枚举

不带作用域的枚举

enum e_SubjectType
{
    Chinese,
    English
};
int eSubjectType = English;// OK
enum e_TeacherType
{
  Chinese,
  English,
  Math
};
// 此时编译会报错,重复定义了

 

C++11标准提供了带作用域的枚举

enum class e_SubjectType
{
    Chinese,
    English
};

enum class e_TeacherType
{
    Chinese,
    English,
    Math
};

e_SubjectType eSubjectType = e_SubjectType::English; // OK
int iTeacherType = e_TeacherType::Math; // 报错
 
 
  • 不带作用域的枚举,如果有重复的枚举值编译会报错
  • 不带作用域的枚举,能够隐式转换为整形
  • 带作用域的枚举,允许出现重复的枚举值;使用时需要加上作用域
  • 带作用域的枚举,不会隐式转换为整形;但允许强制转换
  • 带作用域的枚举,允许修改底层的整形类型表示。enum class:short e_TeacherType={xxx, yyy, zzz};

 

转载于:https://www.cnblogs.com/jobshunter/p/10998170.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值