C++:从类内、类外应用枚举
C++: Applying Enums from inside a class, outside the class
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
}
/*我正在尝试使用枚举在类的特定实例中设置内部可变量。问题是当我尝试使用它时,枚举在类外无法识别。在类外部声明枚举不是一种选择。*/
你需要用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);
}
相关文章:
- 不带大括号的枚举形式
- 枚举环境变量的惯用C++14/C++17方法
- 类似枚举的计算常量
- 如何正确实现和访问运算符的各种自定义枚举器
- 错误:从"int"到枚举c++的转换无效
- C++中构造函数中的枚举
- 访问在 C++ 结构中声明的枚举变量
- 枚举类'classname'的多重定义
- 强枚举类型定义:Clang Bug 还是 C++11 标准不确定性?
- typedef 枚举和枚举类有什么区别?
- 为什么我的开关/机箱在使用枚举时默认?
- 标准::可选枚举的比较运算符
- C++两个源文件之间共享的枚举的静态实例
- 打印没有铸件的枚举可以在C++中吗?
- 相机枚举的选项和UWP应用程序的HAL(WPF/C CLI DLL)
- C++:从类内、类外应用枚举
- 枚举C++中安装在windows上的应用程序
- 应用有关如何递增枚举的规则
- 基于 SAPI 的应用程序在枚举令牌时引发内存访问冲突
- 从大量的枚举中,我尝试通过使用一些模板技巧来创建一个函数来应用正确的操作,而无需使用开关主体