命名空间std添加了什么? (C ++)

时间:2014-06-22 06:15:37

标签: c++ c++11 std

我目前正在使用c ++,我想知道使用命名空间std添加的所有内容。我已经知道基本的,如cout和cin。但是当我在不使用命名空间std的情况下运行我的程序时,它不起作用(我在cout命令之前添加了std ::)。但我想知道还有什么我需要在之前添加std ::

非常感谢任何帮助!

这是我的代码:

#include <iostream>
#include <string>

class MyClass{
public:
    void setName(string x){
        name = x;
    }
    string getName(){
        return name;
    }
private:
    string name;
};

int main()
{
    MyClass mc;
    mc.setName("WASSSSSUUUPP!!! \n");
    std::cout << mc.getName();
}

1 个答案:

答案 0 :(得分:1)

1 - 标准C ++库的所有实体(变量,类型,常量和函数)都在std命名空间中声明。 using namespace std;引入了std命名空间的所有名称直接可见性到代码中。

参考:http://www.cplusplus.com/doc/tutorial/namespaces/

2 - C ++中的命名空间最常用于避免命名冲突。尽管名称空间在最近的C ++代码中被广泛使用,但大多数旧代码都不使用此工具。例如,整个C ++标准库在namespace std内定义,但在标准化之前,许多组件最初位于全局命名空间中。

参考:http://en.wikipedia.org/wiki/Namespace#Use_in_common_languages