c++ - namespace 的可见性问题

标签 c++ namespaces visibility

我有两个源文件,一个名为 main.cpp(其中定义了命名空间 M)和文件 engines.h(其中定义了几个名称)。
main.cpp 包含 engines.h
engines.h需要用到M里面的东西,M需要用到engines.h里面的东西.

我在 engines.h 中执行 using namespace M; 时出错。

最佳答案

不要在头文件中使用 using 命名空间。这将从包含该头文件的每个翻译单元内的 namespace 中获取所有符号,因此您将遇到符号困惑(名称冲突,这可能是您遇到的情况)。在头文件中使用完全限定,或者至少在本地使用 using 命名空间语句(在您要提高可读性的函数或方法中)。

对于您的情况,您得到的错误是什么?标题的内容是什么?

关于c++ - namespace 的可见性问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3186540/

相关文章:

c++ - Zxing C++ 出现 LNK2005 错误

javascript - 基于 bool 值更改 JSP 中控件的可见性

jquery - 不要让 IE 选择并复制使用 jQuery .hide() 隐藏的表行

visibility - Objectify 是否允许实体字段的所有类型的可见性?

python - 什么是 Python 命名空间

XSLT 命名空间问题

c++ - Arduino 库 : multiple definitions of a global var

C++重载优先于特化?

c++ - 为什么 MediaFoundation InitializeSinkWriter (SetInputMediaType) 只接受 WMV3 格式?

c# - XNA - 缺少视频和视频播放器的命名空间?