我正在尝试制作一个使用多个类(和多个头文件)的C ++程序。我做了一个名为' move'在其中一个类中,但我需要从所有类中访问此类型。如果我将enum声明只留在一个头文件中,其他类无法访问它,编译器会在其使用的每个地方给出一个错误,除了该类和main。如果我在main中声明它,没有类可以访问它。如果我在每个类头文件中声明它,我会收到编译器错误以重新定义它。
我在哪里声明一个枚举类型,以便每个类头文件都可以访问它?
答案 0 :(得分:3)
我在哪里声明一个枚举类型,以便每个类头文件都可以访问它?
在自己的标题中。为您的enum
创建一个单独的头文件,并在需要使用它的所有其他标头中为该#include
标头创建标头。不要忘记添加include guards以避免多重包含:
#ifndef MOVE_H
#define MOVE_H
enum move foo {
LEFT, RIGHT, UP, DOWN
};
#endif /* MOVE_H */
注意:如果您有多个逻辑上属于一起的枚举,或者属于一个类的enum
,您可能希望将这两个枚举放在同一个标题中。