如果我有类似这样的东西:
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:37:18
请记住在报头中使用header include guards,例如:
#ifndef header_name_h
#define header_name_h
...
#endif这有助于您在多个标头包含您的标头时遵守一个定义规则。
更新:
后来我发现Visual Studio和gcc的最新版本都允许:
#pragma once另外,永远不会有:
using namespace <name>;因为这会导致奇怪的歧义问题。
发布于 2009-08-16 15:28:11
是的,您的枚举定义可以放在头文件(.h)中。不过,不要在.cpp文件中重复定义。
https://stackoverflow.com/questions/1284529
复制相似问题