我有两个源文件,一个名为 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/