Во-первых: не используйте typedef
.Вместо этого поместите имя перечисления в его заголовок
enum XEnumType {
LINEAR = 0, /// Perform linear interpolation on the table
DIPARABOLIC = 1 /// Perform parabolic interpolation on the table
};
В двух словах, если вы сделаете так, как вы, то будете вести себя , в основном , так же, но в тайных угловых случаях все будет иначе.Синтаксис, который вы использовали, будет сильно отличаться от синтаксиса, который я использовал выше только в C.
Второе: это просто определяет тип.Но вы хотите определить объект этого перечисления.Сделайте так:
XEnumType e;
В итоге:
class x {
/* ... stays the same ... */
enum XEnumType {
LINEAR = 0, /// Perform linear interpolation on the table
DIPARABOLIC = 1 /// Perform parabolic interpolation on the table
};
XEnumType e;
};
void someFunction() {
x myX(10);
myX.e = x::LINEAR;
}