C ++中使用的命名空间是什么?

时间:2011-03-17 00:47:55

标签: c++

在C ++中用于命名空间的是什么?

using namespace std;

4 个答案:

答案 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;
}

代码将使用命名空间进行组织。