C++-程序中的多个枚举模型

C++ - Multiple enum delcarations in a program

本文关键字:枚举 模型 程序 C++-      更新时间:2023-10-16

在.h文件中放入命名空间声明的形式不正确吗?

//object.h
namespace Stuff {
 enum Type {Player, Enemy, Gold, Potion}
}
...

当其他文件包含object.h时,它可能会被定义多次。这会是个问题吗?

这就是为什么要包含头保护(pragma once,if/end-if)。您也可以使用enum类型,例如enum类EnumClassName来进行范围解析,而不是命名空间。

您似乎没有在.h文件中包含HEADER GUARD。它看起来像这样-

#ifndef _HEADER_GUARD_
#define _HEADER_GUARD_
//Your .h file content
#endif

这样可以防止在一个文件中多次包含同一个头文件。人们通常将.h文件的名称用作HEADER_GUARD宏。

比如,对于名为abhi.h的文件,我更喜欢使用_abhi_h_