class Stepper {
public:
enum microstepping {
FULL,
HALF,
QUARTER
};
int stepsPerStep;
Stepper(microstepping _microstepping) {
switch(_microstepping){
case FULL:
stepsPerStep = 1;
break;
case HALF:
stepsPerStep = 2;
break;
case QUARTER:
stepsPerStep = 4;
break;
}
}
};
void main() {
Stepper stepperA(FULL);//Problem shows here
}
/ * 我试图使用枚举在类的特定实例中设置内部可变。问题是当我尝试使用它时,枚举不会在课堂外被识别。在课堂外宣布枚举不是一种选择。 * /
答案 0 :(得分:2)
您需要使用Stepper
范围 -
class Stepper {
public:
enum microstepping {
FULL,
HALF,
QUARTER
};
int stepsPerStep;
Stepper(microstepping _microstepping) {
switch(_microstepping){
case FULL:
stepsPerStep = 1;
break;
case HALF:
stepsPerStep = 2;
break;
case QUARTER:
stepsPerStep = 4;
break;
}
}
};
int main() {
Stepper stepperA(Stepper::FULL);
}
并尽可能使用enum class
-
class Stepper {
public:
enum class microstepping {
FULL,
HALF,
QUARTER
};
int stepsPerStep;
Stepper(microstepping _microstepping) {
switch(_microstepping){
case microstepping::FULL:
stepsPerStep = 1;
break;
case microstepping::HALF:
stepsPerStep = 2;
break;
case microstepping::QUARTER:
stepsPerStep = 4;
break;
}
}
};
int main() {
Stepper stepperA(Stepper::microstepping::FULL);
}