作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对在哪里可以定义枚举以及在哪里可以使用它感到困惑。我有 3 个文件,一个 main.cpp、function.cpp 和 function.h(名称已简化)。在 function.h 中我有
class Function{
public:
enum Letters{A, B, C};
//more stuff not related
private:
//stuff
}
而function.h是#included在main.cpp和function.cpp中
但是在 main.cpp 中我想要一个变量:Letters letter;所以我可以从用户那里得到一个输入,将该输入设置为类型,即 letter = A,然后将它用于构造函数 Construct construct(..., letter,...) 因为 function.cpp 中的构造函数需要一个“Letters "在参数中。
那么有什么方法可以访问 main.cpp 中的类型“Letters”吗?如果不是,我正在考虑重写构造函数,以便它接受“string letterIn”参数,然后将字符串更改为 Type,即 if(letterIn == "A") Type type = A;
(我在这里概括了很多变量名,所以它可以适用于其他人的情况,如果有帮助,我可以在我自己的项目中做更多的细节)
最佳答案
既然您想在构造函数中使用枚举,我假设您可以将其公开。因此,您可以像这样访问它:
class Function{
enum Letters{A, B, C};
//more stuff not related
}
int main(int argc, char** argv} {
Function::Letters letter1 = Function::A;
//or
Function::Letters letter2 = Function::Letters::A;
}
或者,作为 Medinoc指出,如果您将枚举声明为 enum class
int main(int argc, char** argv} {
Function::Letters letter = Function::Letters::A;
}
关于c++ - header 、类和主程序中的枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26026197/
我是一名优秀的程序员,十分优秀!