美文网首页
神奇的enum class,竟然将Class名作为switch判

神奇的enum class,竟然将Class名作为switch判

作者: 大啸 | 来源:发表于2019-03-31 21:11 被阅读0次

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";

}

这里分享给大家

相关文章

网友评论

      本文标题:神奇的enum class,竟然将Class名作为switch判

      本文链接:https://www.haomeiwen.com/subject/rizubqtx.html