1

我有一个 .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
4

2 回答 2

5

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

于 2012-09-08T00:34:55.953 回答
2

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

#pragma once 是安全的包含守卫吗?

于 2012-09-08T02:10:53.880 回答