[C++] 头文件中不要用using namespace std
先总结下:
1. using namespce std;尽量不要(或者强硬一点,不许)在头文件中使用。
解析: 不让这么用,主要原因就是防止名字重复(即自定义变量名和std中名字重复),因为头文件会被很多地方使用,你不知道这个using能覆盖多大范围。
2. 头文件最好不用,但在cpp文件中可以使用(但有比这更好的方法,之后说),但是,有个条件,必须用在所有#include之后。
解析:如果在cpp文件中使用using namespace std; 而且,若放在#include之前,那相当于用在头文件中了,你不知道头文件展开后,这个using覆盖多大的范围。所以,必须用在所有#include之后。
3. 在头文件和cpp文件中,可以使用using命令(如 using std::cout;) 来替代 using编译命令(using namespace std;)。
举例说明:
using namespace std; // 不要这样做
而应这样做
int y;
std::cin >> y ;
std::cout << y << std::endl;
或者这样做
using std::cout;
using std::cin;
int y;
cin >> y;
cout << y;
4. 当然,还有人想把using namespace std;放在自定义的命名空间中,你可以去试试。
---------------------
作者:c+
原文:https://blog.csdn.net/qnavy123/article/details/79914339
版权声明:本文为博主原创文章,转载请附上博文链接!
[C++] 头文件中不要用using namespace std的更多相关文章
- 我的探究:为什么.h头文件中不要写using namespace std
- 不要在头文件中使用 using namespace std;
不要在头文件中使用(using namespace std;). 若你使用了using namespace std;,在某一头文件中,那么包含这些头文件的文件就失去了"namespace ...
- 一定不要在头文件中using namespace XXX
一定不要在头文件中using namespace XXX,这样会造成名字空间污染,引发ambiguous错误,又难以定位.
- (转) [C++]我再也不想在任何头文件中看到using namespace xxx这种句子了(译)
原文的传送:I don’t want to see another “using namespace xxx;” in a header file ever again 转自 http://blog ...
- c++ inline使函数实现可以在头文件中,避免多重定义错误
作者:Jon Lee链接:https://www.zhihu.com/question/53082910/answer/133612920来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业 ...
- [C++] 头文件中的#ifndef,#define,#endif以及#pragma用法
想必很多人都看过“头文件中用到的 #ifndef/#define/#endif 来防止该头文件被重复引用”.但是是否能理解“被重复引用”是什么意思?头文件被重复引用了,会产生什么后果?是不是所有的头文 ...
- cctype头文件中的一些内容
1. string 标准库 1.1初始化 string s1; 默认构造函数s1为空 string s2(s1); 将s2初始化为s1的一个副本 string s3(“value”); 将s3初始化为 ...
- Effective Objective-C 2.0 — 第二条:类的头文件中尽量少引入其他头文件
第二条:类的头文件中尽量少引入其他头文件 使用向前声明(forward declaring) @class EOCEmployer 1, 将引入头文件的实际尽量延后,只在确有需要时才引入,这样就可以减 ...
- c语言头文件中定义全局变量的问题
c语言头文件中定义全局变量的问题 (转http://www.cnblogs.com/Sorean/) 先说一下,全局变量只能定义在 函数里面,任意函数,其他函数在使用的时候用extern声明.千万不要 ...
随机推荐
- 基于随机游走的三维网格分割算法(Random Walks)
首先以一维随机游走(1D Random Walks)为例来介绍下随机游走(Random Walks)算法,如下图所示,从某点出发,随机向左右移动,向左和向右的概率相同,都为1/2,并且到达0点或N点则 ...
- spring-cloud-kubernetes官方demo运行实战
关于spring-cloud-kubernetes spring-cloud-kubernetes是springcloud官方推出的开源项目,用于将Spring Cloud和Spring Boot应用 ...
- Immutable Object模式 - 多线程
Immutable Object模式 - 多线程 前言 在多线程编程中,我们常会碰到修改一个对象的值,如果在不加锁的情况下 ,就会出现值不一致的问题,那么有没有一种方式可以不通过加锁的方式也可以保证数 ...
- JAVA解除tomcat 对浏览器特别字符 | () {} [] 的限制
1.打开tomcat本机地址打开conf文件夹(一定要关闭Tomcat启动在修改) 2.记事本打开或者编辑软件打开(我这里推荐的编辑软件是以下如图) 打开进去加入这两行代码 3打开server.xml ...
- Spring Cloud开发人员如何解决服务冲突和实例乱窜?(IP实现方案)
一.背景 在我上一篇文章<Spring Cloud开发人员如何解决服务冲突和实例乱窜?>中提到使用服务的元数据来实现隔离和路由,有朋友问到能不能直接通过IP来实现?本文就和大家一起来讨论一 ...
- tesseract-ocr下载
参考:http://www.tuicool.com/articles/E3MNziM 1.下载地址:https://sourceforge.net/projects/tesseract-ocr/fil ...
- CF EDU 1101D GCD Counting 树形DP + 质因子分解
CF EDU 1101D GCD Counting 题意 有一颗树,每个节点有一个值,问树上最长链的长度,要求链上的每个节点的GCD值大于1. 思路 由于每个数的质因子很少,题目的数据200000&l ...
- lightoj 1145 - Dice (I)(dp+空间优化+前缀和)
题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1145 题解:首先只要是dp的值只和上一个状态有关系那么就可以优化一维,然后这题 ...
- 牛客网暑期ACM多校训练营(第三场) A PACM Team 01背包 记录路径
链接:https://www.nowcoder.com/acm/contest/141/A来源:牛客网 Eddy was a contestant participating in ACM ICPC ...
- CF940B Our Tanya is Crying Out Loud
Our Tanya is Crying Out Loud time limit per test 1 second memory limit per test 256 megabytes input ...