在C ++中用于命名空间的是什么?
using namespace std;
答案 0 :(得分:33)
命名空间用于防止名称冲突。
例如:
namespace foo {
class bar {
//define it
};
}
namespace baz {
class bar {
// define it
};
}
您现在有两个类名称栏,由于命名空间的原因,它们完全不同并且分开。
您显示的“using namespace”是这样的,您不必指定命名空间来使用该命名空间中的类。即std :: string成为字符串。
答案 1 :(得分:3)
它用于防止名称混淆,因此您可能在不同的名称空间中有两个具有相同名称的类。
此外,它还用于对类进行分类,如果您已经看过.net框架,您将看到名称空间用于对类进行分类。例如,您可以为雇员类定义名称空间,为任务类定义名称空间,并且两个名称空间都在公司类的名称空间内,因为名称空间可能包含子名称空间。
相同的命名空间可能存在于不同的文件中,因此using
它可能很有用,因为它可以使您能够直接使用每个#include
d文件中命名空间中的所有类。
这就是我现在所记得的。
答案 2 :(得分:1)
有人可能会问,简单的大括号{}
足以解决名称冲突。还为什么要有一个NameSpace。上面提到的Tamer快速回答是,使用NameSpace,我们可以在另一个文件中打开相同的范围。
答案 3 :(得分:0)
命名空间通常用于防止命名冲突。 因此,命名空间进入图片的地方是
class ABC{
// Does something for me.
};
class ABC{
// Does something for you..
};
int main() {
ABC myABC;
return 0;
}
这将产生编译错误,因为系统不知道要考虑哪个类。这里命名空间的概念进入了画面。
namespace My{
class ABC{
// Does something for me.
};
}
namespace Your{
class ABC{
// Does something for you..
};
}
using My::ABC
// We explicitly mention that My ABC is to be used.
int main() {
ABC myABC;
return 0;
}
代码将使用命名空间进行组织。