我需要在两个不同的类中使用枚举WrapMode。 最好的方法是什么?
1)在头文件的名称空间中声明枚举,并在两个类中都包含
2)在两个类中分别在本地声明名称空间。
enum TextureWrapMode { Repeat = 0, Clamp = 1};
class My_Texture
{
};
///////////////////////////////////////////////// //////////////////////
class Texture
{
};
答案 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;
}
希望能帮助