我知道您可以使用枚举的一部分作为函数的参数。我的问题是你可以使用整个枚举作为参数吗?
对于枚举:
enum exampleEnum {ONE,TWO,THREE}
Run Code Online (Sandbox Code Playgroud)
通过部分枚举,我指的是:
function example(exampleEnum value){}
function example(ONE);
Run Code Online (Sandbox Code Playgroud)
按整个枚举是:
function example(enum value){}
function example(exampleEnum);
Run Code Online (Sandbox Code Playgroud)
我想我要问的是我可以像传递数组一样传递枚举。至少这就是我认为我要问的。
编辑
我试图实现的效果是在多个类和子类之间共享一个枚举,而无需在我希望使用它的每个类/子类中重新定义它。我希望传递这些值,而不是使用某种形式的全局变量。
编辑的编辑
更具体地说......我使用枚举值作为关联数组的一种形式。
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;
Run Code Online (Sandbox Code Playgroud)
我想要的是传递枚举的整个名称、值以及作为参数传递的所有内容。我想传递枚举以保留枚举名称和值以继续使用它们。
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;
}
Run Code Online (Sandbox Code Playgroud)