type
status
date
slug
summary
tags
category
icon
password
命名空间是啥
假设一班有三个学生,我们把这三个变量定义在文件yiban.h中
二班也有三个学生:我们把这三个变量定义在文件erban.h中
现在我们要用到两个文件里所有的变量(比如年级主任要点名这两个班所有人):
注意 #include "xxx"的作用就是把文件xxx里的内容原封不动复制一份到这来,那上面文件实际上等价于:
问题出现了,两个文件都有个叫xiaoming的变量,年级主任喊xiaoming的时候根本不知道是哪个班的。
现在年级主任为了区分,会这么喊:
一班的小明
这里,一班就是个命名空间,小明就是属于这个命名空间里的变量。
在C++里,我们也可以给他们定义一个命名空间(namespace),让外边的人知道到底是哪个班的小明。
这样我们的main函数就可以这么写:
一班 的 小明 在C++语法里就是 yiban::xiaoming,这里的双冒号就是“的”。
类和命名空间
上节里,定义类的成员函数的时候,我们也用到了双冒号的语法。
一个类定义的时候
其实也隐含了一个命名空间。毕竟类的本质就是为了封装一系列的成员,防止被外部污染。
因此在myclass.cpp文件里实现的时候要用MyClass::add()的形式。
- 作者:HSZTY
- 链接:hszty.cn/article/cpp-tutorial-namespace
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。