An enum is not a struct. A struct is a structure that would contain variables that would be referenced with a . notation.

An enum is simply a listing of values something can take on.

in your case, DifficultyLevel can == EASY, but it wouldn't be referenced as DifficutlyLevel.EASY.

Honestly the way it is makes much more sense then what you're trying to convert it to.

Here's an example, let's say you have a switch statement that will do something based upon variable X

switch (x) {
case 1: .... break;
case 2: .... break;
.
.
.
etc.
}

You're testing x to see what it's value is to perform some operation, you're not doing:

case x.1

your testing:

if (x == 1)

it's the same thing with an enum.

you're testing

if (DifficultyLevel == EASY)

Looking at it in the way an if statement would evaluate it sometimes makes it more clear like in this case. EASY is a value that DifficultyLevel can take, EASY is not a part of DifficultyLevel that can be referenced like a variable in a struct.

You can do it that way - it'd probably be cleaner to create it outside of the class and typedef it so if you were to use the enum outside of the class, or within another class you could without having to recreate it - plus it would probably look cleaner in the class itself to have