我明白,如果没有using namespace std
,而你想写一个cout
,你需要有一个std::cout
。
std
代表什么?为什么std
被广泛使用,例如std::vector
、std::cout
、std::cin
?
std代表"标准"。
这么多标准的东西放在std
名称空间中的原因很简单:在名称空间出现之前,不同的人编写的不同代码通常会使用相同的名称,从而导致冲突。例如,我1994年的饮料分配器程序可能有一个类ofstream
,它是一个橙色芬达流。当一个新版本的c++出现并添加了ofstream
(一个输出文件流)时,我的程序无法再编译了,或者会崩溃。
好吧,橙色幻想流是愚蠢的,但主要的操作系统确实有称为open
,close
和index
的C函数。我相信很多人都试过把全局变量命名为open
,然后他们的程序崩溃了。
在c++中,所有新的c++标准的东西都在std::
里面,所以只要我不在我的程序中调用std
,他们就可以在std::
里面添加新的东西,这绝对不会导致这个问题。不幸的是,c++从C继承的所有东西都在std::
之外,所以你仍然不能创建一个名为open
的全局变量(在Linux上),但至少这是一个开始。