zoukankan      html  css  js  c++  java
  • using namespace std 和 include 的区别

    using namespace std;
    int main()
    {
     std::string dd = "ddd";//会报错namespace "std" has no member "string",因为没有引入string库
    }


    #include<string>
    int main()
    {
        string  dd = "ddd"; //虽然编译单元包含了string,但是这个string还是找不到,因为string在std中,必须加std::才能找到string
        std::string dd = "ddd";//这样就不会报错了
    }

    #include<string>
    using namespace std;//在这个域中用using声明了std::string
    int main()
    {
        string  dd = "ddd"; //string能找到了,这个string就是std::string
    }


    #include<iostream>
    int main()
    {
        std::string  dd = "ddd"; //不会报错,因为iostream里面include了string
    }



    总结:
    #include <string>

    就是将string库包含到当前编译单元中.

    using namespace std;

    1.尽量不要写using namespace std;因为随着项目的增大,会污染其他的文件,很难查出问题

    因为使用using namespace std;的话就没有起到命名空间的作用。再次回到了如同没有涉及命名空间时,所有标示符都定义在全局作用于中的混乱情况,不利于程序员创建新对象。


    2.如果,把using namespace std; 写在全局中.

    就是将std里的所有名字暴露在当前编译单元的各个域中,

    3.如果using std::string在单独的域中,就可以在该域中直接使用string, 少打std::了,比较方便
    一个编译单元会有很多域...一般,这个只会出现在单独的域中
  • 相关阅读:
    可爱精灵宝贝 DP/爆搜
    那些年留的坑
    吃某种零食ing
    NOIP模拟测试13
    NOIP模拟测试12
    NOIP模拟测试11
    大佬 (数学)
    BZOJ3331 BZOJ2013 压力
    LOJ2586 APIO2018 选圆圈
    BZOJ3398 牡牛和牝牛
  • 原文地址:https://www.cnblogs.com/kevinWu7/p/10163533.html
Copyright © 2011-2022 走看看