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::了,比较方便
    一个编译单元会有很多域...一般,这个只会出现在单独的域中
  • 相关阅读:
    开始程序猿的生涯了
    将博客搬至CSDN
    java如何修改java.library.path并且不重启jvm也能生效
    JCEF 如何修改右键菜单项(JCEF在右键菜单中添加开发者选项-show dev tools)
    JS调用JCEF方法
    java cef3 禁止右键菜单项
    [java报错]Could not instantiate listener XXXXXX
    ThinkPhp的搭建
    phpMyAdmin的配置
    铁路局12306余票查询的实现
  • 原文地址:https://www.cnblogs.com/kevinWu7/p/10163533.html
Copyright © 2011-2022 走看看