我正在尝试创建一个类,在类的内部,我想定义一个名为Type的枚举。我可以使用我定义为我的类的构造函数的枚举吗?如果是这样,我如何在课外访问它?
class Type {
public:
enum TType { BLACK, WHITE, GRAY };
Type(TType type, std::string value);
~Type();
...
这段代码没有给我任何错误,但是当我尝试在另一个类中创建这个类的实例时,它会给我一个错误,因为BLACK没有定义:
Type piece(BLACK, value);
有没有一种特殊的方法来执行此操作并且仍然将TType作为我的Type类的类构造函数?这是我第一次使用枚举,所以我不知道它们是如何工作的。
答案 0 :(得分:4)
是的,你可以:
Type piece(Type::BLACK, value);
enum TType
在class Type
的范围内,因此在Type
的正文和成员函数之外访问时,您必须使用范围解析。