【发布时间】:2023-03-15 10:45:01
【问题描述】:
编译器是否有一种通用的方式来处理类中的枚举定义,例如,在private: 中使用枚举但之后在public: 部分中定义它是否可行?
代码示例:
class MyClass{
private:
myEnum myMember;
public
enum myEnum { A, B, C };
}
使用 gpp 似乎可以工作,但这是正确的用法吗?
【问题讨论】:
-
枚举将是未定义的。
-
我认为像这样混合隐私修饰符是一个糟糕的主意。这是一种糟糕的风格,不清楚,而且没有多大意义。你为什么想做这个?这不只是糟糕的风格吗?此类问题是否应该有值得考虑的答案?
-
什么是
gpp?如果您的意思是cpp预处理器,它会让很多无效的C/C++程序通过。例如:This is not a valid C/C++ program! -
@BigBadWolf 请显示可以编译的代码。您的代码将无法编译,因为在编译类的私有部分时未定义标识符 myEnum。
-
@Cinch 混合隐私修饰符(像这样和一般)是优秀的风格,使意图更清晰并且非常明智,时期。