我有一个.h文件,其中包含多个类定义。我想在这个文件中使用C ++的include guard;但是,我想知道使用包含警卫的哪种方式被认为是正确/正确的?
一名守卫保护一切
#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
答案 0 :(得分:5)
他们包括警卫,防止双重包含文件。所以它们应该按文件定义一次,而不是按类或函数或其他任何方式定义。
答案 1 :(得分:2)
您是否考虑过使用#pragma一次?大多数现代编译器都支持它。