C++中的全局枚举

4

好的,假设我想定义一个地形枚举,如下:

enum terrain {MOUNTAIN, GRASS};

我该如何将这个枚举定义为项目中所有类都可以使用的内容?
或者说,我该如何在项目中定义一个可供所有类使用的枚举?

6
把它放进一个头文件中,然后你就可以包含它了。 - Cory Kramer
如果我想要在多个类中定义枚举,那么我是否需要为每个类重新定义它? - user2827048
1
在C++11中,更倾向于使用class enum而不是普通的enum - Alper
1
@Alper:enum class 仍然更好。 - Mike Seymour
1个回答

10

将你的enum声明放在头文件中:

terrain.h

#ifndef TERRAIN_H
#define TERRAIN_H

enum terrain {MOUNTAIN, GRASS};

#endif

(#ifndef/#define这对是一个包含保护工具,你可以在其他地方了解相关内容。)

source.cpp

#include <stdio.h>
#include "terrain.h"

// your code here

在每个需要使用的源文件中包含terrain.h文件。如果需要,您还可以从另一个头文件中包含头文件。


1
“如果需要的话,您也可以从另一个头文件中包含头文件。” OP,请非常谨慎地接受这个建议。强调“如果您需要的话”。在不必要的情况下避免在头文件中包含其他头文件。 - Cory Kramer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接