zoukankan      html  css  js  c++  java
  • C++ 头文件与using namespace std

    最近刚刚又开始看C++的教材。发现自己确实学的不认真,许多东西指到现在才搞明白。(orz,惭愧)

    我再也不想在任何头文件中看到“using namespace xxx;”了

    百度我发现了这句话,仔细一看原因是因为:http://www.ituring.com.cn/article/23606

    如果你把using声明用在了头文件中,你会让这类问题更加恶化,因为命名冲突问题早晚都会在一个调用关系非常非常远的模块中神不知鬼不觉的出现,

    而你可能需要查三层调用才可以找到原因所在,一个头文件包含了另一个直接使用using声明的头文件可以导致命名空间被立刻污染掉,

    任何一个使用命名空间的文件如果使用了std命名空间的内容,都会导致这类问题。

    但是在VS中发现了 一句神奇的#pragma once  

    是一个比较常用的C/C++杂注,只要在头文件的最开始加入这条杂注,就能够保证头文件只被编译一次。
    #pragma once是编译器相关的,有的编译器支持,有的编译器不支持,具体情况请查看编译器API文档,不过现在大部分编译器都有这个杂注了。
     
    是不是有了这句话就可以使用using namespace xxx了呢~?!
  • 相关阅读:
    Git 生命周期
    Git 配置环境
    JAVA克隆对象报错:The method clone() from the type Object is not visible
    C# 将字符串按要求分解成字符串数组
    servlet 标红的错误笔记
    TIBCO Jaspersoft Studio 报表软件使用教程
    错误笔记4
    ^按位运算详解
    表现层状态转换
    servlet 读取文件
  • 原文地址:https://www.cnblogs.com/MonotoneLight/p/4342902.html
Copyright © 2011-2022 走看看