【发布时间】:2015-08-20 14:37:02
【问题描述】:
一个例子:
//a.h
// no include guards
class A {};
如果我在一个翻译单元(一个 cpp 文件)中包含此标头两次,我会得到一个链接器错误,没关系。但是,如果我将它包含在 2 个不同的翻译单元中也可以,对吧?
现在考虑一个全局函数:
// b.h
// no include guards
void foo() {}
不仅不允许在同一个单元中包含两次,而且在任何其他翻译单元中也不允许第二次包含它。为什么?
【问题讨论】:
标签: c++