包括守卫风格,C++
Posted
技术标签:
【中文标题】包括守卫风格,C++【英文标题】:Include guard style, 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
【问题讨论】:
一个就够了。两个类都应该只定义一次,这发生在守卫内部的任何东西上。 【参考方案1】:它们是包含守卫,防止重复包含文件。因此,它们应该为每个文件定义一次,而不是每个类或函数或其他任何东西。
【讨论】:
【参考方案2】:您是否考虑过使用 #pragma 一次?大多数现代编译器都支持它。
Is #pragma once a safe include guard?
【讨论】:
以上是关于包括守卫风格,C++的主要内容,如果未能解决你的问题,请参考以下文章
如何使 c++ 代码既可用于 Qt 项目(QTL 风格)也可用于 C++ 项目(STL 风格)