我知道您可以使用枚举的一部分作为函数的参数。我的问题是您可以使用整个枚举作为参数吗?
对于枚举:
enum exampleEnum {ONE,TWO,THREE}
我指的是部分枚举:
function example(exampleEnum value){}
function example(ONE);
整个枚举是:
function example(enum value){}
function example(exampleEnum);
我想我想问的是我可以像传递数组一样传递枚举吗?至少这是我想问的。
编辑
我想要达到的效果是在多个类和子类之间共享一个枚举,而无需在我希望使用它的每个类/子类中重新定义它。我希望传递这些值而不是使用某种形式的全局变量.
编辑的编辑
更具体地说...我使用枚举值作为关联数组的一种形式。
enum attribute{STR,DEX,CON,INT,WIS,CHA};
short int charAttributes[6];
charAttributes[STR] = sumValue;
charAttributes[DEX] = sumValue;
charAttributes[CON] = sumValue;
charAttributes[INT] = sumValue;
charAttributes[WIS] = sumValue;
charAttributes[CHA] = sumValue;
我想要的是传递枚举的完整名称、值以及所有要作为参数传递的内容。我想传递枚举以保留枚举名称和值以继续使用它们。
最佳答案
exampleEnum 是一种类型,而不是一个值。 C++ 将类型传递给函数的方法是使用模板:
#include <iostream>
#include <ostream>
#include <typeinfo>
using namespace std;
enum exampleEnum {ONE,TWO,THREE};
template<typename T>
void example()
{
cout << typeid(T).name() << endl;
}
int main()
{
example<exampleEnum>();
return 0;
}
关于c++ - 是否可以将整个枚举集作为参数传递?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13095921/