C++ 封装私有枚举
前面我定义了枚举类型,这些类型在类的头文件中是私有的C++ 封装私有枚举,c++,enums,C++,Enums,前面我定义了枚举类型,这些类型在类的头文件中是私有的 private: enum foo { a, b, c }; 但是,我不想再公开枚举的详细信息。在实现中定义枚举与定义类不变量类似吗 const int ClassA::bar = 3; enum ClassA::foo { a, b, c }; 我想知道这是否是正确的语法。C++没有枚举的前向声明,因此不能将枚举“类型”与枚举“实现”分开 在C++0x中可以执行以下操作: // foo.h class foo { enum b
private:
enum foo { a, b, c };
但是,我不想再公开枚举的详细信息。在实现中定义枚举与定义类不变量类似吗
const int ClassA::bar = 3;
enum ClassA::foo { a, b, c };
我想知道这是否是正确的语法。C++没有枚举的前向声明,因此不能将枚举“类型”与枚举“实现”分开 在C++0x中可以执行以下操作:
// foo.h
class foo {
enum bar : int; // must specify base type
bar x; // can use the type itself, members still inaccessible
};
// foo.cpp
enum foo::bar : int { baz }; // specify members
否,
enumclassa::foo{a,b,c}代码>的语法不正确
如果您想将枚举从标头中移出并移动到实现(.cpp)文件中,那么只需这样做。如果要对类的方法的参数类型使用枚举,则无法移动它,因此只需将其保留为私有