如果我有类似这样的东西:
enum
{
kCP_AboutBox_IconViewID = 1,
kCP_AboutBox_AppNameViewID = 2,
kCP_AboutBox_VersionViewID = 3,
kCP_AboutBox_DescriptionViewID = 4,
kCP_AboutBox_CopyrightViewID = 5
};
在我的.cpp中,它可以在.h中使用吗?
更重要的是,除了类定义、变量等之外,您还可以在.h中放入哪些其他较少了解的内容
发布于 2009-08-16 15:49:27
.h文件本质上就是代码,它在编译时放在包含它的任何.cpp (或.h文件)之上。因此,您只需将.cpp文件中的任何代码放入.h中,它就应该可以很好地编译。
然而,重要的是设计。如果需要将代码暴露给包含.h文件的代码,则应该将代码(例如枚举)放在.h文件中。但是,如果枚举仅特定于头的.cpp实现中的代码,则应该只将其封装在.cpp文件中。
发布于 2009-08-16 15:28:11
是的,您的枚举定义可以放在头文件(.h
)中。不过,不要在.cpp
文件中重复定义。
发布于 2009-08-18 04:17:48
通常,枚举将用作类型定义,并且应该始终位于头文件中。需要考虑的是它的范围。
如果枚举只是放在头文件中的任何作用域之外,那么它将全局地可用于包括头文件的任何事物。如果您希望枚举仅供类本身访问,则可以将其放在类的私有部分。
通常,您不应该将枚举设置为全局作用域,而应该将其放入名称空间或类的公共部分。然后,您就可以通过
NamespaceOrClass::EnumValue
另外,作为附注,枚举会自动迭代您给出的第一个值(或0)。
enum
{
kCP_AboutBox_IconViewID = 1,
kCP_AboutBox_AppNameViewID = 2,
kCP_AboutBox_VersionViewID = 3,
kCP_AboutBox_DescriptionViewID = 4,
kCP_AboutBox_CopyrightViewID = 5
};
完全相同于
enum
{
kCP_AboutBox_IconViewID = 1,
kCP_AboutBox_AppNameViewID,
kCP_AboutBox_VersionViewID,
kCP_AboutBox_DescriptionViewID,
kCP_AboutBox_CopyrightViewID
};
这不是问题或错误,只是风格上的问题。
https://stackoverflow.com/questions/1284529
复制相似问题