前面总结了C++中的键盘输入,经过一段时间的学习,终于基本上把C++的基础知识都预热了一遍。今天再做一个总结。

C++比C中多了一个命名空间,即用关键字namespace声明,为什么要使用命名空间呢。这是广大初学者都很迷惑的一个问题,其实很简单。举一个简单的例子,在信息学院有两个班级,计算机一班和计算机二班,在每一个班级中都有一个人叫做张小三。那么如果两个班级在一块上课,当老师点到张小三的时候,他们两个就会很郁闷,老师怎么不说清楚啊。但是如果老师这样点名:计算机一班的张小三,或者是计算机二班的张小三。这样他们就会很高兴,因为他们知道老师点的是不是自己。在这个例子中,可以吧计算机一班和计算机二班分别看做是两个命名空间,因此命名空间的作用显而易见,防止同名的标示符发生冲突。在C++中,命名空间最常见的使用方式如下:

using namespace std;

其中命名空间std中,包括了C++的所有标准库。

关键字namespace可以用来声明一个命名空间,如:

namespace wang
{
int a;
}
namespace zhang
{
int a;
}

可以看到,声明了两个命名空间wang和zhang。这两个名字空间中有一个同名的变量a,那么我们如何使用这个变量a呢?如下例:

......
wang::a=1; //计算机一班的张小三
zhang::a=-1;   //计算机二班的张小三
......

其中“::”这个符号叫做域解析操作符,在这个例子中,我们直接使用了名字空间来指定到底是哪一个a,这种方式和老师点名所采用的方式是一样的,指定是哪一个班级的张小三。还有一种使用方式:

......
using wang::a;  //老师说,下面我要点计算机二班的张小三
a=1;            //张小三
zhang::a=-1;    //老师说,计算机一班的张小三
......

这种方式类似于,老师说:下面我要点计算机二班的张小三,然后点到张小三,计算机二班的张小三就知道点的是他了。而老师又想点计算机一班的张小三,怎么办呢?那就直接点计算机一班的张小三,这样也不会造成混乱。如果名字空间wang中还有其他的函数,比如:

namespace wang
{
int a;
int f();
}

要想使用名字空间wang的函数f(),就必须要用如下的方法:

......
using wang::a;
a=1;
using wang::f;//可以替换
f();          //为wang::f();
zhang::a=-1;
......

这是因为using用法只能使用名字空间中的一项,当然有更简单的用法:

......
using namespace wang;
a=1;
f();
zhang::a=-1;
......

namespace出现在using指令中,它涵盖了一个名字空间的所有表示符。名字空间就到此结束。

C++基础知识(二)命名空间相关推荐

  1. CV:计算机视觉技术之图像基础知识(二)—图像内核的可视化解释

    CV:计算机视觉技术之图像基础知识(二)-图像内核的可视化解释 目录 图像内核的可视化解释 测试九种卷积核 官方Demo DIY图片测试 DIY实时视频测试 相关文章 CV:计算机视觉技术之图像基础知 ...

  2. CV:计算机视觉技术之图像基础知识(二)—以python的skimage和numpy库来了解计算机视觉图像基础(图像存储原理-模糊核-锐化核-边缘检测核,进阶卷积神经网络(CNN)的必备基础)

    CV:计算机视觉技术之图像基础知识(二)-以python的skimage和numpy库来了解计算机视觉图像基础(图像存储原理-模糊核-锐化核-边缘检测核,进阶卷积神经网络(CNN)的必备基础) 目录 ...

  3. (五)JS基础知识二(通过图理解原型和原型链)【三座大山之一,必考!!!】

    JS基础知识二(原型和原型链) 提问 class 继承 类型判断(instanceof) 原型 原型关系 基于原型的执行规则 原型链 说明 提问 如何准确判断一个变量是不是数组 class的原型本质 ...

  4. oracle:oracle基础知识(二)

    oracle基础知识(二)笔记:高级查询 文章目录 分组查询 多属性分组语法: 过滤查询 group by 语句增强 sqlplus报表功能 多表查询 等值连接 外连接 自连接 子查询 子查询中的空值 ...

  5. 网络基础知识(二) HTTP

    网络基础知识(二) HTTP 黑发不知勤学早,白首方悔读书迟. 内容参考:https://www.runoob.com/http/http-content-type.html HTTP协议是Hyper ...

  6. CV:计算机视觉技术之图像基础知识(二)—图像内核的九种卷积核可视化解释(blur/bottom sobel /emboss/identity /sobel /outline/sharpen)

    CV:计算机视觉技术之图像基础知识(二)-图像内核的九种卷积核可视化解释(blur/bottom sobel /emboss/identity /left sobel /outline/right s ...

  7. scikit-learn学习基础知识二

    scikit-learn学习基础知识二 文章目录 scikit-learn学习基础知识二 一.介绍 二.代码实现 三.运行结果 四.总结 一.介绍 本文我们学习scikit-learn中的KNeigh ...

  8. kettle对字符串去除空格_整理|ABAP基础知识二:常用字符串处理

    常用字符串处理 上一期整理了ABAP的数据类型和定义,今天我们整理一下开发过程中常见的字符串处理命令.虽然说这些基础知识对于已经熟练使用Ctrl c + Ctrl v的资深码农来说过于简单.但是对于一 ...

  9. [Python学习] 专题五.列表基础知识 二维list排序、获取下标和处理txt文本实例

    通常测试人员或公司实习人员需要处理一些txt文本内容,而此时使用Python是比较方便的语言.它不光在爬取网上资料上方便,还在NLP自然语言处理方面拥有独到的优势.这篇文章主要简单的介绍使用Pytho ...

  10. Java基础知识(二) 面向对象的技术

    Java基础知识 面向对象的技术 1. 面向对象与面向过程有什么区别 2. 面向对象有哪些特征 3. 什么是继承 4. 组合和继承的区别 5. 多态的实现机制 6. 重载和覆盖有什么区别 7. 抽象类 ...

最新文章

  1. C# 判断字符串是否符合十六进制,八进制,二进制和十进制整数格式的正则表达式...
  2. 设计模式(一)预备知识
  3. python相关知识介绍一种理财方法_我是如何使用python来确定理财策略的
  4. 虚幻4 捏脸和换装系统实现
  5. 最开始教学html5的人,初识html5的个人看法
  6. Java 递归算法之斐波那契数列第 N 项
  7. 数据库原理及应用(MySQL版)
  8. 一款不错的图片自动向上翻滚的代码
  9. Google Earth Engine(GEE)——计算NDVI\EVI\RVI\DVI\SAVI归一化植被指数、比值植被指数、差值植被指数、土壤调节植被指数、增强型植被指数和绿度植被指数计算并下载
  10. boost::bind 详解
  11. 弱口令总结(什么是弱口令)
  12. luooj P1655手套
  13. 虚拟机Centos,登陆之后又弹回到登陆界面,无法进入系统
  14. 什么是Vue CLI(脚手架)?
  15. 【opencv-python-face_recognition人脸识别,分辨人物是否为同一个人】人脸检测,识别出人物框,并能根据两次输入图片分辨是否为同一个人
  16. python扩散模拟_扩散模拟 - 问答 - Python中文网
  17. PDF可以转PPT吗?PDF转PPT简单方法推荐
  18. H5自动播放背景音乐(IOS和安卓)
  19. 幼儿园计算机课件制作评比表,幼儿园课件制作基本原则与评价标准_表格评价.doc...
  20. 51单片机15单片机 时钟芯片DS1302

热门文章

  1. [转载] Python中三种类型的引号(单引号、双引号、三引号)
  2. verilog之状态机详细解释(二)
  3. 关于map的初级应用
  4. 20145206《Java程序设计》实验五Java网络编程及安全
  5. 【译】Input Method Manager (IMM):输入法管理器
  6. JPA+Hibernate 3.3 ——第一个JPA程序
  7. SSI(Server Side Includeds)使用详解(转载)
  8. uva10340 Ail in All
  9. 《Python核心编程》第二版第308页第十一章练习 续一 -Python核心编程答案-自己做的-...
  10. VScode+远程服务器docker+C/C++ 代码挑战配置