你如何通过引用传递枚举?

Dar*_*nor 2 c++ enums

我有一个带有四个键的枚举我正在作为接口程序的输入,我想通过值将枚举传递给接口函数,这已经变得很长.枚举是这样的:

enum MYKEYS {
  W, S, O, L
};
Run Code Online (Sandbox Code Playgroud)

还有一个布尔数组,我必须通过引用传递,这也有点棘手.

bool key[4] = { false, false, false, false };
Run Code Online (Sandbox Code Playgroud)

有没有人知道在函数中将这两个作为引用传递的正确语法,类似于:

function(int & anintreference);
Run Code Online (Sandbox Code Playgroud)

Gre*_*reg 7

您无法将enum自身作为函数的参数传递!在enum定义了新的类型,并且可以创建这种类型的,即可以采用由所定义的值中的一个的变量enum:

MYKEYS k = W;
Run Code Online (Sandbox Code Playgroud)

只有这样你才能通过k引用来传递一些函数:

function foo(MYKEYS& k_);
Run Code Online (Sandbox Code Playgroud)

关于你的第二个问题,因为你应该把数组看作指向一系列的指针bool:

function bar(bool* key, int length);
Run Code Online (Sandbox Code Playgroud)