【问题标题】:Include guard style, C++包括守卫风格,C++
【发布时间】:2012-09-08 00:32:14
【问题描述】:

我有一个 .h 文件,其中包含几个类定义。我想在这个文件中使用 C++ 的包含防护;但是,我想知道哪种使用包含防护的方式被认为是正确/正确的?

一个守卫保护一切

#ifndef FOO_BAR
#define FOO_BAR

class Foo
{
};

class Bar
{      
};

#endif

或多个单独的守卫。

#ifndef FOO
#define FOO

class Foo
{
};

#endif

#ifndef BAR
#define BAR

class Bar
{      
};

#endif

【问题讨论】:

  • 一个就够了。两个类都应该只定义一次,这发生在守卫内部的任何东西上。

标签: c++ coding-style include-guards


【解决方案1】:

它们是包含守卫,防止重复包含文件。因此,它们应该为每个文件定义一次,而不是每个类或函数或其他任何东西。

【讨论】:

    【解决方案2】:

    您是否考虑过使用 #pragma 一次?大多数现代编译器都支持它。

    Is #pragma once a safe include guard?

    【讨论】:

      猜你喜欢
      • 2012-01-19
      • 2016-08-14
      • 1970-01-01
      • 2019-04-25
      • 2017-07-31
      • 2011-12-22
      • 2013-06-22
      相关资源
      最近更新 更多