• C++笔记(二)------ 头文件


    类似#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。

  • 相关阅读:
    LeetCode 34. Find First and Last Position of Element in Sorted Array
    LeetCode 875. Koko Eating Bananas
    LeetCode 560. Subarray Sum Equals K
    Vue 3 响应式原理源码解析 All In One
    git rebase 与 git merge 的区别是什么 All In One
    superscript & subscript symbol All In One
    macOS & ifconfig & ipconfig commands All In One
    Chrome UX Report All In One
    TypeScript Utility Types All In One
    TypeScript Type Manipulation All In One
  • 原文地址:https://www.cnblogs.com/no-tears-girl/p/4953708.html
Copyright © 2020-2023  润新知