c++ using namespace 详解

<script></script>

所谓namespace,是指标识符的各种可见范围。C++标准程序库中的所有标识符都被定义于一个名为std的namespace中。

一 :

<iostream>和<iostream.h>是不一样,前者没有后缀,实际上,在你的编译器include文件夹里面可以看到,二者是两个文件,打开文件就会发现,里面的代码是不一样的。

后缀为.h的头文件c++标准已经明确提出不支持了,早些的实现将标准库功能定义在全局空间里,声明在带.h后缀的头文件里,c++标准为了和C区别开,也为了正确使用命名空间,规定头文件不使用后缀.h。

因 此,当使用<iostream.h>时,相当于在c中调用库函数,使用的是全局命名空间,也就是早期的c++实现;当使用< iostream>的时候,该头文件没有定义全局命名空间,必须使用namespace std;这样才能正确使用cout。

二:

所谓namespace,是指标识符的各种可见范围。

C++标准程序库中的所有标识符都被定义于一个名为std的namespace中。

由于namespace的概念,使用C++标准程序库的任何标识符时,可以有三种选择:

1、直接指定标识符。例如std::ostream而不是ostream。完整语句如下:

std::cout << std::hex << 3.4 << std::endl;

2、使用using关键字。

using std::cout;
using std::endl;

以上程序可以写成

cout << std::hex << 3.4 << endl;

3、最方便的就是使用using namespace std;

例如:

#include <iostream>
#include <sstream>
#include <string>
using namespace std;
这样命名空间std内定义的所有标识符都有效(曝光)。就好像它们被声明为全局变量一样。那么以上语句可以如下写:

cout << hex << 3.4 << endl;

因为标准库非常的庞大,所程序员在选择的类的名称或函数名时就很有可能和标准库中的某个名字相同。所以为了避免这种情况所造成的名字冲突,就把标准 库中的一切都被放在名字空间std中。但这又会带来了一个新问题。无数原有的C++代码都依赖于使用了多年的伪标准库中的功能,他们都是在全局空间下的。   

         所以就有了<iostream.h>和<iostream>等等这样的头文件,一个是为了兼容以前的C++代码,一个是为了支持新的标准。

命名空间std封装的是标准程序库的名称,标准程序库为了和以前的头文件区别,一般不加".h"

 

 

 

 

今天用了VISUAL C++写了个小程序(VS2005),很简单很简单的,但是就是编译不通过
出现一个奇怪的问题:错误 1 error C2668: “max”: 对重载函数的调用不明确

最初代码如下

C++ using namespace std 详解(转) - minnie - minnie的小窝 #include < iostream >
C++ using namespace std 详解(转) - minnie - minnie的小窝
using namespace std;
C++ using namespace std 详解(转) - minnie - minnie的小窝
C++ using namespace std 详解(转) - minnie - minnie的小窝template
< typename T >
C++ using namespace std 详解(转) - minnie - minnie的小窝T max (T a,T b)
C++ using namespace std 详解(转) - minnie - minnie的小窝C++ using namespace std 详解(转) - minnie - minnie的小窝
C++ using namespace std 详解(转) - minnie - minnie的小窝 {
C++ using namespace std 详解(转) - minnie - minnie的小窝
return ((a>b)?a:b);
C++ using namespace std 详解(转) - minnie - minnie的小窝}

C++ using namespace std 详解(转) - minnie - minnie的小窝
void main()
C++ using namespace std 详解(转) - minnie - minnie的小窝C++ using namespace std 详解(转) - minnie - minnie的小窝
C++ using namespace std 详解(转) - minnie - minnie的小窝 {
C++ using namespace std 详解(转) - minnie - minnie的小窝
double x,y;
C++ using namespace std 详解(转) - minnie - minnie的小窝cin
>>x>>y;
C++ using namespace std 详解(转) - minnie - minnie的小窝cout
<<"Max number is "<<(max(x,y))<<endl;
C++ using namespace std 详解(转) - minnie - minnie的小窝cin
>>x;
C++ using namespace std 详解(转) - minnie - minnie的小窝}

C++ using namespace std 详解(转) - minnie - minnie的小窝


     我将这段代码放到VC++ 6.0下竟然通过了,程序运行也正常。这让我百思不得其解。后来终于弄明白了!
     其实在std命名空间下还有一个MAX函数,而且实现的功能也是一样的……我昏。利用转到定义功能可以看到微软是怎么写MAX函数的。这里为了不被鄙视就不贴微软的代码了。
     明白了为什么出现这个错误我们就改写代码如下:

C++ using namespace std 详解(转) - minnie - minnie的小窝 #include < iostream >
C++ using namespace std 详解(转) - minnie - minnie的小窝
using std::cin;
C++ using namespace std 详解(转) - minnie - minnie的小窝
using std::cout;
C++ using namespace std 详解(转) - minnie - minnie的小窝
using std::endl;
C++ using namespace std 详解(转) - minnie - minnie的小窝
C++ using namespace std 详解(转) - minnie - minnie的小窝template
< typename T >
C++ using namespace std 详解(转) - minnie - minnie的小窝T max (T a,T b)
C++ using namespace std 详解(转) - minnie - minnie的小窝C++ using namespace std 详解(转) - minnie - minnie的小窝
C++ using namespace std 详解(转) - minnie - minnie的小窝 {
C++ using namespace std 详解(转) - minnie - minnie的小窝
return ((a>b)?a:b);
C++ using namespace std 详解(转) - minnie - minnie的小窝}

C++ using namespace std 详解(转) - minnie - minnie的小窝
int main()
C++ using namespace std 详解(转) - minnie - minnie的小窝C++ using namespace std 详解(转) - minnie - minnie的小窝
C++ using namespace std 详解(转) - minnie - minnie的小窝 {
C++ using namespace std 详解(转) - minnie - minnie的小窝
double x,y;
C++ using namespace std 详解(转) - minnie - minnie的小窝cin
>>x>>y;
C++ using namespace std 详解(转) - minnie - minnie的小窝cout
<<"Max number is "<<(max(x,y))<<endl;
C++ using namespace std 详解(转) - minnie - minnie的小窝cin
>>x;
C++ using namespace std 详解(转) - minnie - minnie的小窝}


     这是我比较推荐的做法,因为C++ PRIMER, EFFECTIVE C++上都是用这种方式的,但是谭浩强的书上都是一句using namespace std;就搞定,我觉得蛮简洁的就一直用了,没想到带来那么多的问题,以前在友元函数上还碰到莫名的错误呢。
     其实还有两个简单的解决方案,那就是把自己定义的函数改成其他的名字,或者直接用微软提供的函数。相信微软提供的效率绝对不会比我们写的低~
     好了,就写到这了。希望大家养成良好的编程习惯,^-^

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/46340.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

开学了,笔记本wifi空调打包回学校

听说理想中的爱情是这个样子&#xff1a;枯藤老树昏鸦&#xff0c;晚饭有鱼有虾&#xff0c;空调wifi西瓜&#xff0c;夕阳西下&#xff0c;你丑没事我瞎。而现实中&#xff0c;同学对学校的要求是&#xff0c;笔记本wifi空调&#xff0c;有没有&#xff1f;不过&#xff0c;最…

Python 从入门到实践 学习基础

本人本科是计算机科学与技术专业的一枚小程序员&#xff0c;在即将毕业的时候接触到了Python&#xff0c;在Python上也是小白一个&#xff0c;这也是我第一次在CSDN上写文章&#xff0c;希望和各位大佬交流分享自己的一些经验&#xff0c;如有不对的地方&#xff0c;还请指出&a…

计算机网络应用押韵句,沙雕押韵很可爱的rap的句子 笑掉大牙的押韵句子

1.爱情经不起等待&#xff0c;叫我宝贝就现在。 2.只要哥哥长得帅&#xff0c;备胎成群我也爱。 3.那些过不去的坎&#xff0c;还不都是因为你腿短。 4.跟着大哥混&#xff0c;三天饿九顿。 5.不笑运气差&#xff0c;一笑脸就大。 6.我爱你&#xff0c;你爱她&#xff0c;你说你…

Nginx+Tomcat搭建高性能负载均衡集群之枯藤老树

天净沙秋思 --枯藤老树昏鸦&#xff0c;小桥流水人家&#xff0c;古道西风瘦马。夕阳西下&#xff0c;断肠人 在天涯。 一、 工具 nginx-1.8.0 apache-tomcat-6.0.33 二、 目标 实现高性能负载均衡的Tomcat集群&#xff1a; 三、 步骤 1、首先下载Nginx&#xf…

用IT看世界杯——枯藤老树昏鸦,足球IT小龙虾

据相关媒体报道虽然国足无缘本届世界杯但中国却以另类的方式参与此次体育赛事。在与世界杯同期进行的机器人足球世界杯RoboCup上代表中国的浙江大学ZJUNlict队以4-0大胜卡耐基梅隆大学代表的美国队获得了RoboCup小型组的世界冠军。RoboCup是机器人领域最高水平的国际性赛事2013…

“正能量”抖音网红

一说到网红&#xff0c;人们很难把这个词和“正能量”联系到一起。网友们第一时间会想到的是“整容”、“蛇精脸”、“搔首弄姿”、“哗众取宠”等中性甚至是贬义词。 小编就是这群网友当中的其中一员&#xff0c;每次看到什么与“网红”沾上边&#xff0c;立马眉头一皱赶紧跳开…

大家都在刷的抖音短视频,原来是这些.......

作者 | 小F 来源 | 法纳斯特 之前有个朋友提到了抖音数据的获取。 问我这样的行业前景如何&#xff0c;说实话我哪知道啊... 不过也算是给我提供了一些分析思路&#xff0c;感谢。 所以本次就来分析一下抖音的那些大V们。 来探索一下什么样的视频在抖音里最受欢迎。 这里不得不…

抖音私信分享卡片如何制作,抖音私信卡片的优点。

最近很多人在问如何实现在抖音私信/客户群/粉丝群内将链接转换为图文卡片呢&#xff0c;如何生成自己的抖音私信卡片呢&#xff1f; 抖音私信卡片制作教程&#xff1a; 1、点击前往 【小狐工具箱】后台创建卡片&#xff0c;先选择不开启跳转&#xff1b; 2、进入 我的卡片详情…

抖音要做多久才有起色?厦门宝讯网捷

确实不可否认&#xff0c;抖音平台的流量是巨大的&#xff0c;所以&#xff0c;越来越多的朋友都准备在抖音平台上大展拳脚&#xff0c;实际操作的时候还是有一点力不从心&#xff0c;想要学习一下抖音要做多久才有起色&#xff1f;下面厦门宝讯网捷小编就来讲一下。 抖音账号的…

揭秘抖音最新玩法“抖音两元店”背后的套路。丨国仁网络资讯

既然选择了抖音直播这个行业,就要对直播这个行业有一份新的认知。你要把它当成你的一份职业,一份可以养活自己的工作。既然是工 作就要全身心的投入进去,学习和总结做直播的技巧和经验。还有 就是要有自己的定位,定位就是展示自己的一种方式。 选择属于自 己风格的直播方式…

凯育星辰:玩抖音,你不能碰的违禁词

抖音目前是公认的爆火短视频APP.之所以如此持续火遍大街小巷&#xff0c;跟每个文明的用户息息相关。那么你知道哪些语言是抖音上的违禁词吗&#xff1f;凯育星辰帮大家大致整理了以下这些&#xff1a; 涉及政治敏感问题的词&#xff0c;比如国家领导人、国徽、国旗、国歌、军旗…

被杭州某抖音代运营公司坑了

我是卢松松&#xff0c;点点上面的头像&#xff0c;欢迎关注我哦&#xff01; 聚募海哥说&#xff1a;昨天有个朋友跟我诉苦&#xff0c;被杭州某抖音代运营公司坑了&#xff0c;之前谈好的销售目标只完成了20%&#xff0c;痛骂代运营真TM不靠谱。关于代运营这个事情&#xff…

吃瓜吃出的抖音滑块

目录 前言 一、出师不利 二、轻声安抚/抽丝剥茧 三、验证 总结 前言 因为实习的原因&#xff0c;离开了室友的我老是吃不到一手瓜&#xff0c;这可是件大事&#xff0c;每天就靠着这点精神粮食过活了&#xff0c;然后就有了采集抖音热门榜单的想法&#xff0c;说干就干&…

抖音哪些行为存在骗赞骗关注,会有什么违规处罚丨国仁网络

对于一些视频内容较差或者说没有核心内容的视频&#xff0c;如果仅仅可以通过一些求赞求关注的手段&#xff0c;就让视频获得大量的互动&#xff0c;从而获得大量的流量。大家可以想一下&#xff0c;这样对于优质视频和原创视频创作者是公平的吗&#xff1f; 因此当出现非常直…

一款抖音搞笑对话聊天记录生成软件

介绍&#xff1a; 想必大家经常在抖音上面看到很多搞笑的聊天记录什么的&#xff0c;其实那都不是真实的&#xff0c;都是用软件生成然后直接载图&#xff0c;用这个软件没事的是可以可以生成几个聊天记录做成视频&#xff0c;随便发一发也无妨&#xff0c;说不定还会上热门来…

成都待慕电商:抖音虚假宣传虚构被比较价格违规细则

为了保护抖音消费者权益&#xff0c;规范创作者商品分享推广秩序&#xff0c;抖音平台制定《「虚假宣传-虚构被比较价格」违规细则》。 来看详细内容&#xff1a; 一、什么是“被比较价格”&#xff1f; 被比较价格&#xff1a;指创作者通过价格比较的方式宣传商品价格优惠时&a…

剖析抖音爆火的美食探店大佬,揭秘他们的运营秘诀

最近在抖音有一位名叫@大LOGO吃垮北京 的美食创作者火出了圈。 靠着一系列美食探店短视频,成为抖音最近的爆款: 东方明珠酒店住一晚什么体验? 帝王蟹澳洲龙虾吃到爽要花多少钱? 黄晓明、关晓彤、杜海涛请客……明星们开的店味道怎么样? …… 靠着这些视频,这位@大LOGO…

一场直播帮你揭开保险代打卡背后的“猫腻”

你以为代打卡是在为打工人谋福利&#xff0c;事实上却成为了黑灰产的揽财工具。 以保险行业为例。 据顶象防御云业务安全情报中心对保险行业的反欺诈数据分析&#xff0c;打卡作弊严重的地区&#xff0c;保险行业参与考勤作弊的员工数量占比高达25%以上。据此推断&#xff0c…

抖音安心购有假货吗?四川鹰迪

无论是谁大家都不希望花大价钱在抖音买东西买到假货&#xff0c;抖音网购经验丰富的伙伴&#xff0c;多少都会掌握一些辨别商品真伪的方法&#xff0c;那抖音安心购的商品有假货吗&#xff1f;下面四川鹰迪小编就来讲一下。 抖音电商上线消费者权益产品“安心购”&#xff0c;推…

python培训抖音广告骗局

未来很难再出现学科类“网红”老师。 抖音正式治理教育培训广告&#xff0c;校外学科培训信息流投放将成历史 2021-11-23 00:54:06发布 来源&#xff1a;多知网 作者&#xff1a;Miracle 来源|多知网 作者|胡晓倩 图片来源|pixabay 11月19日&#xff0c;抖音电商新…