【问题标题】:C++ - Multiple enum delcarations in a programC++ - 程序中的多个枚举声明
【发布时间】:2016-04-02 20:16:08
【问题描述】:

将命名空间声明放在 .h 文件中是不是不好的形式?

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

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

【问题讨论】:

    标签: c++ enums namespaces header-files


    【解决方案1】:

    这就是为什么要包含标头保护(pragma once, if / end if)。您还可以使用枚举 class 类型,例如enum class EnumClassName 用于范围解析而不是命名空间。

    【讨论】:

      【解决方案2】:

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

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-04-26
        • 2011-11-20
        • 1970-01-01
        • 2014-08-22
        • 2010-09-09
        相关资源
        最近更新 更多