C++之命名空间
来源:互联网 发布:东莞市知美整形医院 编辑:程序博客网 时间:2024/05/02 01:00
一:命名空间的定义与简介:
命名空间是ANSI C++引入的可以由用户命名的作用域,用来处理程序中常见的命名冲突。例如有两个头文件中都定义了Student类,那么在主程序中都包含这两个头文件时,使用Student类便会编译出错。或者在程序中引入不同的库时有相同的实体名,则在编译时就会出现名字冲突。或者库中含有与程序的全局变量同名的实体。有人称之为全局命名空间污染。
为解决这个问题,ANSI C++增加了命名空间,实际上是一个由程序设计者命名的内存区域,程序设计者根据需要指定一些有名字的空间域,把一些全局实体分别放在各个命名空间中。从而与其他全局实体分隔开。如:
namespace s
{ int a;}
namespace 是关键字,s是指定的命名空间名。在其中声明的实体被称为命名空间成员。使用时 :
s::a;
注意与类声明的区别,花括号后面没有分号。
二:使用命名空间成员的方法:
1,使用命名空间别名:
例如:namespace playground
{.....}
namespace ssr=playground;//此时ssr就相当于playground的引用。
2.使用“using 命名空间成员名”
例如:using s::Student;
则在using所在的作用域中用s中的Student成员时,不需要用逐个用命名空间限定。
3.使用“using namespace 命名空间名“
例如:using namespace s;
则在本作用域中用到命名空间s中的所有成员时,都不需要再用命名空间去限定。
三:无名的命名空间:
例如:
namespace
{void fun()
{cout<<"OK"<<endl;}
}
因为命名空间没有名字,在其它文件中显然无法引用,它只在本文件的作用域中有效。
在本程序中的其他文件中也不能使用fun函数,fun函数作用域只能是本文件。
四:标准命名空间std
标准C++库的所有标识符都是在一个名为std的命名空间中定义的。
using namespace std;
- C/C++:命名空间
- C++-namespace(命名空间)
- C++-namespace(命名空间)
- C++namespace命名空间
- C#.Net命名空间
- C++_命名空间
- C++namespace命名空间
- 【C++】命名空间
- [C++]namespace命名空间
- C\C++命名空间
- C++:命名空间(namespace)
- [c++]命名空间
- <C++>2.命名空间
- 命名空间之全名命名空间
- XML之命名空间
- 读书笔记之 -->"命名空间"
- C++之命名空间
- C++之命名空间
- xsehll不能删除字符的解决方案
- 请解释一下 JavaScript 的同源策略
- Hadoop 学习笔记八 任务远程提交--Java远程提交
- 函数可变参数列简单用法
- QT对话框中show和exec的区别
- C++之命名空间
- 编写MATLAB脚本产生正弦信号的mif文件
- 什么是闭包?
- 与 QWidget 有关的 Qt 可视化组件的继承关系图
- 深入分析volatile关键字
- 如何对网站的文件和资源进行优化?
- 致误入歧途的码农同学,各类程序员学习路线图
- win平台python3.5 安装scrapy 发生unable to find vcvarsall.bat
- android activity切换动画