【发布时间】:2019-10-03 20:53:51
【问题描述】:
我有 2 个使用 std::string 的对象来工作。对象 A 可以独立于对象 B 使用。但是,可能会出现这样一种情况,即对象 A 和 B 可能在同一个 main.cpp 文件中使用,这可能会导致头文件冲突并且头文件可能会被编译两次。如何防止被编译两次? 我试过使用:
#ifndef string_H
#define string_H
#endif
它不起作用并且对象B无法使用字符串库,我认为这仅用于第三方库,例如我自己的库,而不是用于官方库。所以我的问题是,您如何将包含保护放在标准库的标头上?
编辑:我使用的是 Visual Studio 2017,所以我相信它都是由 Microsoft 编写的。感谢您的回答,我不知道 std:: 已包含已内置的警卫。
【问题讨论】:
-
我承认我不追随。标准库头文件注意保护自己不被重复包含,那么你为什么要坚持这个练习呢?你到底出了什么问题?