C++中的using namespace std的作用

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

iostream和iostream.h的区别:

后缀为.h的头文件C++标注已经明确提出不支持了。早些的实现将标准库功能定义在全局空间里,声明在带.h后缀的头文件里,C++标准为了和C区别开,也为了正确地使用命名空间,规定头文件不使用后缀.h。因此,当使用<iostream.h>时,相当于在C中调用库函数,使用的是全局命名空间,也就是早期的C++实现。当使用<iostream>时,该头文件没有定义全局命名空间,必须使用namespace std,这样才能使用类似于cout这样的C++标识符。

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

C++标准程序库中的所有标识符都被定义于一个名为std的namespace中。 由于namespace的概念,使用C++标准程序库的任何标识符时,可以有三种选择:

直接指定标识符

例如std::iostream而不是iostream。完整语句如下: std::cout << std::hex << 3.4 << std::endl;

使用using关键字

using std::cout; using std::endl; using std::cin; 以上程序可以写成如下代码:

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

使用using namespace std

例如:

#include<iostream>

#include<sstream>

#include<string>

using namespace std;

这样命名空间std内定义的所有标识符都有效(曝光)。就好像它们被声明为全局变量一样。那么以上语句可以如下写: cout << hex << 3.4 << endl; 因为标准库非常的庞大,所以程序员在选择的类的名称或函数名时就很有可能和标准库中的某个名字相同。所以为了避免这种情况所造成的名字冲突,就把标准库中的一切都放在名字空间std中。但这有会带来了一个新问题。无数原有的C++代码都依赖于使用了多年的伪标准库中的功能,他们都是在全局空间下的,所以就有了<iostream>和<iostream.h>等等这样的头文件,一个是为了兼容以前的C++代码,一个是为了支持新的标准。命名空间std封装的是标准程序库的名称,标准程序库为了和以前的头文件区别,一般都不加".h"。

C++中的using namespace std的作用相关推荐

  1. 请说明一下MyBatis中命名空间(namespace)的作用是什么?

    请说明一下MyBatis中命名空间(namespace)的作用是什么? 在大型项目中,可能存在大量的sql语句,这时候为每一个sql语句起一个唯一的标识ID就变得并不容易了,为了解决这个问题,在myb ...

  2. 【命名空间】using namespace std是什么意思?

    文章目录 一. 前言 二.作用域分解运算符 三.命名空间使用介绍 四.using namespace std 一. 前言  C++中的using namespace std是什么意思呢?为了理解其中的 ...

  3. C++中文件开头写的 using namespace std 有什么作用?

    ## C++的STL都是定义在std命名空间中的, using namespace语句的作用是提前声明要引用的命名空间,这样在引用命名 空间中的名称是就不需要加命名空间前缀. 例如,如果不用using ...

  4. 详解C++中经常看到的#include <iostream> using namespace std;

    在cpp文件中,我们经常看到#include <iostream> using namespace std; 这两句连用.问题来了对于从C切换到C++的程序员而言为啥iostream 不写 ...

  5. C++程序中可以没有using namespace std;这一句吗

    2019独角兽企业重金招聘Python工程师标准>>> 可以啊..只是命名空间的声明而已.意思就是说下面的函数,如果有和stl库里面一个名字的,就是用的stl的函数 C++ usin ...

  6. c++ 命名空间 using namespace std 是什么意思?

    简要意思就是使用标准库,想知道更清楚的继续读下面的. using namespace std 是什么意思? using namespace std 意思: using 和namespace都是C++的 ...

  7. (C++)浅谈using namespace std

    1.<iostream>和<iostream.h> 在你的编译器include文件夹里面可以看到,二者是两个文件,里面的代码是不一样的. 后缀为.h的头文件c++标准已经明确提 ...

  8. 【C++】命名空间(namespace) 以及理解using namespace std

    命名空间 1.命名空间使用的背景 1.背景 2.命名空间的定义(namespace) 2.1正常的定义 2.2 命名空间可以嵌套定义 2.3允许命名空间相同 3.域作用限定符(::)和命名空间的使用 ...

  9. using namespace std;到底是在干嘛?

    文章目录 为什么要有namespace? namespace怎么用? 定义语法 嵌套 同名融合 命名空间的使用 方式1 方式2 方式3 域作用限定符 在c++中 为什么要有namespace? 回答这 ...

最新文章

  1. 个人管理 - 目标管理之前,你会时间管理吗
  2. rpmdb open failed 的解决办法
  3. 打开QQ快捷键截屏 CTRL+ALT+A
  4. ci php做记录删除,PHP CI APC 使用记录
  5. struts2框架单文件、多文件上传实例详解
  6. C++基础::string(三)
  7. 数据结构c字符串操作语言版本
  8. Objective-C基础学习笔记(八)-内存管理-autorelease使用-property创建对象的内存管理-循环引用的内管管理...
  9. 查询Mysql的数据架构信息研究
  10. UE4像素流送PixelStreaming
  11. 参考文献在论文中进行引用标注
  12. Luogu P3717 [AHOI2017初中组]cover
  13. 基于vue的 表单设计器(拖拽生成表单)
  14. 腾讯云认证考试考点列表有哪些?
  15. 一次关于架构的“嘴炮”
  16. 自制“营销号视频生成器”
  17. (数论)[SDOI2008]沙拉公主的题目描述
  18. Red Hat (Centos7) 下安装最新 FFmpeg
  19. 使用图像处理技术去除图片水印
  20. RHCE-RHEL 7 系统简介

热门文章

  1. 关于S5PV210 LVDS/VGA等方案的考虑——关于SDA7123和ch7034的性价比分析
  2. 前端练习-----360手机桌面(记录篇)
  3. 各大互联网公司java开发面试常问问题
  4. spring aop中pointcut表达式
  5. 基础算法——二分(与你的女同学玩猜数字游戏)
  6. 计算机核心硬件基础知识
  7. java蓝桥杯之武功秘籍
  8. java equals equalsignorecase 性能_Java中equals()、equalsIgnoreCase()和==的区别
  9. MySQL常用查询(查行数、列数、表数、字段数)和常用函数
  10. PHPExecl获取最大列数(数字),不是列名