百科问答小站 logo
百科问答小站 font logo



C++,为什么有了include<iostream>,还需要using namespace std呢? 第1页

  

user avatar   pansz 网友的相关建议: 
      

一个比较简单的答案:因为 C++ STL 标准库比 C++ 语言诞生得更晚

C++编程语言在 1985 年诞生。而STL标准库的草案在 1992 年才成型。两者相隔了整整七年的时间。

C++ 标准库引入了大量的新的名称。如果这些名称是在 C++ 这门语言诞生之时就存在,那么,C++ 代码撰写者就基本不会使用这些名称来定义自己的标识符。

然而,七年间,全世界的程序员们围绕 C++ 语言开发了大量的代码,这些代码有很大数量已经用到了将来 STL 库使用的标识符。

那么,在这之后推出 STL 标准库,就会遇到很多重名方面的问题。所以最后就统一把所有 STL 库的内容用 std 这个 namespace 包起来。


有的同学可能会提出质疑,iostream 是在 STL 之前就诞生了,为什么 iostream 也要放进 std ?

事实上,在当初还没有标准库的时候,iostream 库真就是直接用的。不需要加 std 。那时候的标准用法还是 #include <iostream.h> 如果你这样用,那就确实不需要加 std 。

后来有了 STL 之后,为了统一起见,就把 iostream 库也放进了 std,写法也去掉了后缀成为 #include <iostream>。

但如果你还需要兼容旧有代码,如果你的代码是在还没有发明 std namepsace 之前撰写的,那可以使用 #include <iostream.h> 这种带后缀的形式,这种形式是不需要加 std 的。




  

相关话题

  想走虚幻引擎c++路线,c++是否应该大量学习算法? 
  C++为什么允许省略访问说明符? 
  倒序输出字符串c++为啥不行? 
  C# 和 Java 哪个更像 C++? 
  关于C++23网络库的争论,大家有什么看法? 
  为什么大学讲授 C 语言比讲授 C++ 的更多? 
  Mac 下顺手的 C/C++ 开发 IDE 是哪个? 
  虚函数效率真的低吗? 
  为什么 Unix 一切皆文件的设计这么成功,而 C++ 统一的流式 IO 则不甚成功? 
  为什么游戏引擎大多选择使用 C++ 而不是 C 开发? 

前一个讨论
现在回想起来,“没有废物的武魂,只有废物的魂师”这句话,真的是对的吗?
下一个讨论
如何评价 12 月 27 号 7999 元预售的联想拯救者 R9000P?





© 2024-06-16 - tinynew.org. All Rights Reserved.
© 2024-06-16 - tinynew.org. 保留所有权利