我可以在类的构造函数中使用枚举吗?

时间:2016-01-16 01:02:48

标签: c++ class constructor enums

我正在尝试创建一个类,在类的内部,我想定义一个名为Type的枚举。我可以使用我定义为我的类的构造函数的枚举吗?如果是这样,我如何在课外访问它?

class Type {
public:
  enum TType { BLACK, WHITE, GRAY };
  Type(TType type, std::string value);
  ~Type();

...

这段代码没有给我任何错误,但是当我尝试在另一个类中创建这个类的实例时,它会给我一个错误,因为BLACK没有定义:

Type piece(BLACK, value);

有没有一种特殊的方法来执行此操作并且仍然将TType作为我的Type类的类构造函数?这是我第一次使用枚举,所以我不知道它们是如何工作的。

1 个答案:

答案 0 :(得分:4)

是的,你可以:

Type piece(Type::BLACK, value);

enum TTypeclass Type的范围内,因此在Type的正文和成员函数之外访问时,您必须使用范围解析。