如果多次包含相同的命名空间会有问题吗?
#include<iostream>
using namespace custom;
using namespace custom;
是否可以将guard应用于名称空间之类的头文件,以便命名空间不会被多次包含? (比如#ifndef ......)
答案 0 :(得分:5)
最好不要在标题中使用“using namespace”。
答案 1 :(得分:4)
如果您有多个命名空间指令,则没有问题。它具有相同的效果 写入一次或多次using namespace指令将名称空间中的所有符号导入当前名称空间。
答案 2 :(得分:4)
命名空间指令和预处理程序指令之间存在差异。你可以写两次,但这不会让你到任何地方。
其次,没有办法防范“反对”,因为它不是问题。命名空间指令不需要保护,也不需要重复。
这篇文章传达了一些关于命名空间可能出错的地方。如果这些信息是无关紧要的,请道歉 - 只是想提供清晰度。
NameSpace只是代码的一个Declerative Region或您的variable.it用于避免变量或函数名称之间的冲突等,请查看以下代码。
这是一个有效的代码
namespace st
{
int i =0;
}
namespace st
{
int j =0;
}
using namespace st;
int main(int argc, char* argv[])
{
i=15;
j =10;
cout<<i<<j;
return 0;
}
现在尝试这个。这段代码会给你一个'i'的错误:重新定义 和多次初始化
代码块
namespace st
{
int i = 0
}
namespace st
{
int i =0;
}
using namespace st;
int main(int argc, char* argv[])
{
i=15;
cout<<i;
return 0;
}
因此,如果您已声明两个具有相同名称的命名空间正确 有效。但如果两个命名空间都包含相同的对象,则会抛出错误