C++程序中的许多元素都有用来表示它们的名称(也称为标识符)。在C++程序中,可以命名的5种元素是:

  (1) 函数。函数是自包含的、可执行代码的命名块。第8章将详细讨论如何定义函数。

  (2) 变量。变量是内存中的指定区域,用于存储数据项。第2章将论述变量。

  (3) 类型。类型是可以存储的数据种类。例如类型int用于存储整数。第2章和后续的章节将介绍类型,尤其是第11和12章。

  (4) 标签。标签提供了表示特定语句的方式。它们很少使用,第4章将详细介绍。

  (5) 命名空间。命名空间是用一个集合名称标识程序中一组命名项的方式。这听起来可能让人混淆,但不必担心,稍后就介绍命名空间,第10章将详细论述。

  在大多数现代C++编译器中,名称只能包含大小写字母、下划线和0~9的数字。ANSI标准还允许在名称中包含通用字符集(Universal Character Set)(稍后介绍)中的字符,但一般不需要这项功能。

  名称必须由允许的字符组成,不要在名称的中间加上空白字符(空格、制表符等),否则,编译器就不会把该名称看做是一个名称,而是看做两个名称,从而导致处理不正确。另一个限制是名称不能以数字开头。下面是一些合法的名称例子:

  value2 Mephistopheles BettyMay Earth_weight PI

下面的名称就不合法:

  8Ball Mary-Ann Betty May Earth-weight 2PI

提示:

  包含两个下划线的名称,或者以下划线开头,后跟一个大写字母的名称,是C++标准库的保留名称,在程序中不应使用这类名称。编译器不会检查这类名称,用户只能在程序出错时发现有一个冲突的名称。

  我们将在使用名称时进一步讨论它们,第2章讨论变量时就开始讨论名称。

  命名空间

  在上面的简单C++程序中,有一行代码没有解释。为了理解这行代码,需要知道什么是命名空间。为了说明命名空间的含义,下面先讨论名称。上面C++程序中还没有解释的代码行如下:

  using namespace std;

  命名空间的名称有点像姓氏。家庭中的每个成员都有自己的姓名,在大多数家庭中,每个家庭成员都有一个惟一的名字。在Smith家中,有Jack、Jill、Jean和Jonah。在家庭成员之间,用名字来指代每个人。但是,其他家庭的成员可能与Smith家的成员有相同的名字。例如,在Jones家中,其成员的名字是John、Jean、Jeremiah和Jonah。Jeremiah Jones在称呼Jean时,显然是指Jean Jones。如果他想指代Smith家中的Jean,就要使用全名Jean Smith。如果不是这两个家庭的成员,就只能使用每个人的全名来指代他本人,例如Jack Smith或Jonah Jones。

  这就是命名空间的作用。命名空间的名称类似于姓氏。在命名空间内部,可以使用其成员的名字。在命名空间的外部,就只能把某个实体的名字和命名空间的名称组合起来,表示该命名空间中的实体。命名空间的目的是提供一种机制,使大程序的各个部分中因出现重名而导致冲突的可能性降到最低。一般情况下,一个程序中包含几个不同的命名空间。

  C++标准库中的实体都是在命名空间std中定义的,所以标准库中的所有实体名都用std来限定。cout的全名就是std::cout,其中的两个冒号有一个非常好听的名称:范围解析运算符,稍后详述。在这个例子中,该运算符把命名空间的名称std和流的名称cout分隔开来。

  在这个简单的C++程序中,开头的using指令表示我们希望在每次引用命名空间std中的元素时,不指定命名空间的名称。继续前面的类推,使程序文件成为std家族的一组荣誉成员,就可以只用名字来引用每个成员了。其优点之一是不需要把cout表示为std::cout,这样程序代码就更简单。如果省略using指令,就必须把输出语句写为:

  std::cout <<"The best place to start is at the beginning";

命名空间不能直接包含_C++程序中可以命名的5种元素相关推荐

  1. ASP.NET 程序中常用的三十三种代码(1)

    ASP.NET 程序中常用的三十三种代码(1) 1. 打开新的窗口并传送参数: 传送参数: response.write("<script>window.open('*.ASPx ...

  2. python list元素合并_Python程序中使用表达式合并List列表元素 - Python - 服务器之家...

    Python程序中使用表达式合并List列表元素 发布时间:2014-02-06 来源:服务器之家 在实现一个产品过程中,使用 Python Extension 需要一个语句将一个列表中子列表合并成为 ...

  3. 地壳中元素含量排名记忆口诀_地壳中含量最多的八种元素,重温高中化学知识...

    原标题:地壳中含量最多的八种元素,重温高中化学知识 小编上高中的时候,在化学书本上就学到了这样的知识,地球是个资源丰富的大宝矿,其中地壳中含量最多的元素是氧,而含量最多的金属元素是铝.下面,小编就为没 ...

  4. ASP.NET程序中常用的三十三种代码(转载)

    asp.net程序中最常用的三十三种编程代码,为初学者多多积累经验,为高手们归纳总结,看了觉得很有价值~,大家不妨参考下! 1. 打开新的窗口并传送参数: 传送参数: response.write(& ...

  5. 微信小程序中嵌套html_在微信小程序中渲染HTML内容3种解决方案及分析与问题解决...

    大部分Web应用的富文本内容都是以HTML字符串的形式存储的,通过HTML文档去展示HTML内容自然没有问题.但是,在微信小程序(下文简称为「小程序」)中,应当如何渲染这部分内容呢? 在微信小程序中渲 ...

  6. stl向量最大值_C ++ STL中向量的最小和最大元素

    stl向量最大值 Given a vector and we have to find the smallest (minimum) and largest (maximum) elements. 给 ...

  7. ASP.NET程序中常用的三十三种代码

    1. 打开新的窗口并传送参数: 传送参数: response.write("<script>window.open('*.aspx?id="+this.DropDown ...

  8. ASP.NET 程序中常用的三十三种代码

    1. 打开新的窗口并传送参数: 传送参数: response.write("<script>window.open('*.aspx?id="+this.DropDown ...

  9. 说说程序中的命名规则 - 以Python为例

    程序里有很多东西需要命名, ​ 良好的命名习惯可以提高编程效率: 减少出错: ​ 良好命名的程序清晰易读. ​ 好的名称可以提供很多有价值的信息. 本文解释作者在<Python编程基础及应用&g ...

最新文章

  1. DeepMind大放送:开放4个多物体表征学习数据集,还有一篇智能体新研究
  2. 高并发编程基础(java.util.concurrent包常见类基础)
  3. 免费下载精美网站模板的25个网站推荐
  4. sas table将缺失值计入百分比_SAS:通过数据块填充缺失值
  5. WebForms UnobtrusiveValidationMode 需要“jquery”ScriptResourceMapping
  6. node.js——麻将算法(二)赖子玩法
  7. Linux系统中硬盘的管理
  8. java webservice 数组参数_LiveBOS Webservice传参类型为list数组
  9. Windows Server 2019 安装应用商店
  10. CS229 Lecture Note 1(监督学习、线性回归)
  11. 计算机PS考试都考哪些,计算机专业ps考试题(考查课)(10页)-原创力文档
  12. 服务实例是否宕机的后台检查线程任务
  13. Matlab二元函数图像绘制
  14. 重温张柏芝08年博客_开发人员和运营人员将在2017年继续重温其在企业中的角色...
  15. 正多边形和多面体的对称群
  16. 武林传奇之七剑下天山java游戏开发商_拓展训练项目之七剑下天山
  17. 将旧电脑配置成linux主机,如何将旧电脑变成主文件服务器
  18. php 警告提示框,js弹出对话框(消息框、警告框)
  19. Win10C盘满了怎么清理?如何清理电脑C盘?
  20. 【.NET】简单使用Description特性

热门文章

  1. HDU2023 求平均成绩
  2. [題解](最小生成樹)luogu_P2916安慰奶牛
  3. php根据修改时间删除指定目录下文件
  4. Java并发编程的艺术(二)——重排序
  5. 怎样用modelsim做后仿真
  6. HtmlString类创建HTML Hepler 扩展MVC TextBox组件
  7. Android扫描二维码 实现 登录网页
  8. 删除word菜单栏上的adobe comments的终极办法
  9. 闲话WPF之十五(WPF的数据处理 [2])
  10. 深夜,你的手机为谁开?