首页 理论教育 《零基础C++从入门到精通》教程:命名空间的定义

《零基础C++从入门到精通》教程:命名空间的定义

时间:2023-08-20 理论教育 版权反馈
【摘要】:下面我们来看一个基本的示例:动手写13.2.1动手写13.2.1展示了命名空间的定义,运行结果如图13.2.1所示:图13.2.1命名空间的定义在这个示例中,我们将自定义版本的vector放到了命名空间mySTL中,在定义对象的时候我们在vector前面加上了“mySTL::”的前缀。动手写13.2.2动手写13.2.2展示了using关键字的两种用法。第二种用法是在using后面接着namespace关键字和命名空间名,这样使得整个命名空间中定义的成员都不需要前缀。

《零基础C++从入门到精通》教程:命名空间的定义

命名空间的定义很简单,就是在关键字namespace后面加上命名空间的名字,然后将各种声明定义用花括号框起来。其中的声明定义可以是变量、函数等任何声明定义,甚至可以是命名空间本身。

命名空间的名字需要满足作用域的规则,而且同一作用域中不能定义两个名字相同的命名空间。命名空间本身就是新的作用域,因为两个命名空间内可以有同名变量,所以这种同名变量不同于一般作用域中的同名变量,它可以借由命名空间前缀被外界访问。下面我们来看一个基本的示例:

动手写13.2.1

动手写13.2.1展示了命名空间的定义,运行结果如图13.2.1所示:

图13.2.1 命名空间的定义(www.xing528.com)

在这个示例中,我们将自定义版本的vector放到了命名空间mySTL中,在定义对象的时候我们在vector前面加上了“mySTL::”的前缀。与此同时,为了使用标准库中定义的vector,我们在vector前面加上了“std::”的前缀。

在之前的很多示例中我们没有使用“std::”,那是因为我们用了using语句,在这里我们也可以使用using语句简化程序。

动手写13.2.2

动手写13.2.2展示了using关键字的两种用法。第一种用法是在using后面接着命名空间的成员,以此免去在单个成员前面加上命名空间前缀的必要。第二种用法是在using后面接着namespace关键字和命名空间名,这样使得整个命名空间中定义的成员都不需要前缀。不过使用第二种形式需要注意多个命名空间中是否有重名元素,如果有重名元素就可能会导致名字冲突。

提示

同一个命名空间的成员不一定要定义在同一个文件或者连续的区域中,我们可以在多个文件中定义同一个命名空间的成员,这令命名空间的使用变得非常灵活。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈