enum class可以定义枚举并制定枚举里面数据的类型,防止数据使用时发生隐式转换,具体用法此处不做介绍,今天我们要说的是使用enum class时间将 class作为 switch判断的分支,代码如下:
#include "pch.h"
#include <iostream>
using namespace std;
class SbujectA {
public:
void info() {
cout << "Subject A" << endl;
}
};
class SbujectB {
public:
void info() {
cout << "Subject B" << endl;
}
};
class SbujectC {
public:
void info() {
cout << "Subject C" << endl;
}
};
#define CLASSTEST \
C(SubjectA, 0) \
C(SubjectB, 1) \
C(SubjectC, 2) \
enum class TYPE : int {
#define C(n,i) n = i,
CLASSTEST
#undef C
};
int main()
{
TYPE type = TYPE::SubjectA;
switch (type)
{
case TYPE::SubjectA:
cout << "A" << endl;
break;
case TYPE::SubjectB:
cout << "B" << endl;
break;
case TYPE::SubjectC:
cout << "C" << endl;
break;
default:
break;
}
std::cout << "Hello World!\n";
}
这里分享给大家
网友评论