多个类头文件需要枚举类型

时间:2014-03-16 09:08:37

标签: c++ class enums header enumeration

我正在尝试制作一个使用多个类(和多个头文件)的C ++程序。我做了一个名为' move'在其中一个类中,但我需要从所有类中访问此类型。如果我将enum声明只留在一个头文件中,其他类无法访问它,编译器会在其使用的每个地方给出一个错误,除了该类和main。如果我在main中声明它,没有类可以访问它。如果我在每个类头文件中声明它,我会收到编译器错误以重新定义它。

我在哪里声明一个枚举类型,以便每个类头文件都可以访问它?

1 个答案:

答案 0 :(得分:3)

  

我在哪里声明一个枚举类型,以便每个类头文件都可以访问它?

在自己的标题中。为您的enum创建一个单独的头文件,并在需要使用它的所有其他标头中为该#include标头创建标头。不要忘记添加include guards以避免多重包含:

#ifndef MOVE_H
#define MOVE_H

enum move foo {
    LEFT, RIGHT, UP, DOWN
};

#endif /* MOVE_H */

注意:如果您有多个逻辑上属于一起的枚举,或者属于一个类的enum,您可能希望将这两个枚举放在同一个标​​题中。