在哪里声明枚举

时间:2019-06-13 10:06:54

标签: c++ c++11

我需要在两个不同的类中使用枚举WrapMode。    最好的方法是什么?

1)在头文件的名称空间中声明枚举,并在两个类中都包含

2)在两个类中分别在本地声明名称空间。

enum TextureWrapMode {  Repeat = 0, Clamp = 1};

class My_Texture
 {

 };

///////////////////////////////////////////////// //////////////////////

class Texture
{

 };

2 个答案:

答案 0 :(得分:2)

由于您标记了问题c ++ 11:请勿使用enum,请使用enum class。命名空间问题(及更多)已解决!除非出于某种原因不能使用C ++ 11,否则我再也看不到使用enum的任何原因。

除此之外,如果由多个模块使用,我会将其放入头文件中。

答案 1 :(得分:1)

如果您正在设计一个大项目,或者有很多文件将要使用该特定枚举,那么最好放那个枚举,或者说所有常见的东西,例如通用结构。 h文件并在所需的位置添加。

如果您只有一个文件代码,则应在声明的标头之后立即声明枚举。

#include <iostream> 
using namespace std;

enum suit {
    club = 0,
    diamonds = 10,
    hearts = 20,
    spades = 3
} card;

int main() 
{
    card = club;
    cout << "Size of enum variable " << sizeof(card) << " bytes.";   
    return 0;
}

希望能帮助