c++强类型枚举enum class NEWTYPE

本文探讨了C++11中对枚举类型的改进,包括引入枚举类(enum class),并展示了如何使用这些特性。同时对比了C++11前后枚举类型的语法和使用区别。
c++11以前:

include

using namespace std;

class Cat
{
public:
Cat() :m_tp(Cat::AA){}
enum MYTYPE {AA,BB,CC};
static const int DD = 1;
private:
MYTYPE m_tp;
};

int main()
{
Cat cat;

int it = Cat::DD;  //可以使用类的静态成员;
int it2 = Cat::AA;  //也可以使用类里的枚举,有点分不清;
Cat::MYTYPE it3=Cat::AA;  //ok
cout << "hello world" << endl;
system("pause");
return 0;

}

“`
c++11之后:
class Cat
{
public:
Cat() :m_tp(Cat::NEWTYPE::DD){}
enum class NEWTYPE{DD,EE,FF}; //可以与static const int同名,一般枚举不行;
static const int DD = 1;
private:
NEWTYPE m_tp;
};

int main()
{
Cat cat;
int it = Cat::DD; //ok;
int it2 = Cat::AA; //fail;
Cat::NEWTYPE it3 = Cat::NEWTYPE::DD;//ok

cout << "hello world" << endl;
system("pause");
return 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值