类似#include<string>与#include<string.h>等头文件的区别

    

  标准的C++头文件没有.h扩展名,带有.h的头文件一般都是C语言的。例如#include<iostream>是C++的头文件,要使用更新的编译器.,#include<iostream.h>是C的头文件。对于C中的每一个头文件,C++标准库中都有一个不带“.h”扩展名的头文件与其相对应。但后者的很多内容都存放进了“std”名字空间中。也有些C++的头文件通过加上c的前缀表示来自于c,例如cmath就是由math.h变来的。

  但是string比较特殊。因为C++中本身就有一个名叫string的类,所以对于原来C中的string.h与其对应就不是string而是cstring .所以string与string.h没有任何关系,是毫无关系的两个头文件。三者的区别如下:
  <string.h>是旧的C 头文件,对应的是基于char*的字符串处理函数;
  <cstring>是对应于旧C 头文件的std 版本;
  <string>是包装了std 的C++头文件,对应的是新的string 类。

  命名空间std的辨析:

  using namespace std //使用名字空间(使用所有)

  using namespace std::cout//只使用cout

如不用using,则在代码前可以用sdt::cout<<表示使用的是std中的cout。

  实例解析:

  #include<iostream.h>//必须要加上.h
  void main()
  {
    cout<<"Right?"<<endl;
  }

  #include<string>
  #include<iostream>//此处必须去掉.h
  usingnamespace std ;
  void main()
  {
    string s;
    getline(cin,s);
    cout<<"Right?"<<endl;
  }

iostream.h里面定义的所有类以及对象都是在全局空间里,所以你可以直接用cout   
但在iostream里面,它所定义的东西都在名字空间std里面,所以你必须加上   
using namespace std才能使用cout。

最新文章

  1. js生成和下载二维码
  2. axis2开发webservice程序
  3. 开启事务时mybatis返回主键id
  4. CodeForces 628B New Skateboard
  5. Android:界面设计工具DroidDraw
  6. 关于web请求中 获取真实IP
  7. 14.5.5 Deadlocks in InnoDB
  8. Tips &amp; Tricks:Apache log4j简明教程(二)
  9. PS抠出树叶树枝
  10. PHP连接MSSQL数据库案例,PHPWAMP多个PHP版本连接SQL Server数据库
  11. PAT (Advanced Level) 1096. Consecutive Factors (20)
  12. [iOS] 响应式编程开发-ReactiveCocoa(一)
  13. JavaScript代码规范和性能整理
  14. JSON详细总结
  15. 打开eclipse &quot;Initializing Java Tooling&quot;错误
  16. Shell编程(五)脚本语法
  17. Windows下将文件打包压缩成 .tar.gz格式
  18. CICD 基础
  19. 使用python绘出常见函数
  20. BZOJ5092 分割序列(贪心)

热门文章

  1. Xcode UUID查询
  2. 探索摸寻之XCode 快捷键
  3. 洛谷 P1736 创意吃鱼法 Label:dp || 前缀和
  4. UVA567
  5. Tornado学习笔记12 tornado.httpserver-.非阻塞的Http服务器
  6. Python笔记-第一天
  7. arcmap配置的mxd慢的问题
  8. (转)完全用GNU/Linux工作 by 王珢
  9. LinkedList实现队列和堆栈的代码
  10. POJ 3177 Redundant Paths(边双连通的构造)