我在这里阅读了有关名称空间的信息,但没有找到答案。
例如:
// example1.cpp
#include "example1.h"
#include <set>
namespace MyNamespace
{
using std::set;
void f() {};
}
// example2.cpp
#include "example2.h"
#include <set>
using std::set;
namespace MyNamespace
{
void f() {};
}
上面的两个例子都位于一些 x? 翻译单元,我的项目正在进行中,我觉得第二个例子更好,但不知道为什么,因为我在其他翻译单元namespace MyNamespace
中看不到导入的名称?std::set
那么我为什么要打扰我是using std::set
在 Mynamespace 外部还是内部调用呢?
你可以解释吗?另外,在什么时候将std::set
被导入Mynamespace
?你怎么知道?
编辑:
假设上面的示例是同一项目的 cpp 文件,那么在MyNamespace内部或外部导入std::set是等效的,因为其他 cpp 文件(位于同一命名空间中)无论如何都不会看到名称集(即使您输入using namespace MyNamespace,没有效果。如果你想使用 set ,你必须在每个翻译单元中输入 using std::set我是对的,为什么?#include<set>