C++语言-08-命名空间
概述
命名空间通常作为附加信息来区分不同库中相同名称的函数、类、变量。命名空间的本质是定义一个范围,该范围即为一个上下文,一个上下文中通常不允许出现相同名称的函数、类、变量。
定义
定义格式
普通的命名空间
namespace namespace_name {
VariableType variable;
ReturnType funciton(ParameterType parameter) {
return result;
}
}
嵌套的命名空间
namespace namespace_name {
VariableType variable;
ReturnType funciton(ParameterType parameter) {
return result;
}
namespace subNamespce_name {
VariableType subVariable;
ReturnType subFunciton(ParameterType parameter) {
return result;
}
}
}
命名空间中函数或变量的调用
// 使用范围解析运算符调用命名空间中的函数或变量
namespace_name::variable;
namespace_name::funciton(parameter);
namespace_name::subNamespce_name::subVariable;
using namespace 指令
- 使用 using namespace 指令来简化指定命名空间中函数或变量的调用
指定一个命名空间
using namespace namespace_name;
function(parameter);
指定一个命名空间中的一个函数或变量
using namespace_name::function();
function(parameter);
// 未指定的变量,需要使用命名空间名字加上范围解析符访问
namespace_name::variable;
- using 指令的作用域
- 从 using 指令开始,到该范围结束
示例
定义命名空间
namespace testSpace {
int variable;
void function() {
cout << "testSpace" << endl;
}
// 嵌套的命名空间
namespace subTestSpace {
void function() {
cout << "subTestSpace" << endl;
}
}
}
main函数
int main(int argc, const char * argv[]) {
testSpace::function();
testSpace::subTestSpace::function();
return 0;
}
C++语言-08-命名空间的更多相关文章
- 几种常见语言的命名空间(Namespace)特性
命名空间提供了一种从逻辑上组织类的方式,防止命名冲突. 几种常见语言 C++ 命名空间是可以嵌套的 嵌套的命名空间是指定义在其他命名空间中的命名空间.嵌套的命名空间是一个嵌套的作用域,内层命名空间声明 ...
- C语言中命名空间的实现
foobar.h // inclusion guard #ifndef FOOBAR_H_ #define FOOBAR_H_ //// long names //int foobar_some_fu ...
- C#语言-08.序列化与反序列化
a. 序列化:是将对象的状态存储到特定存储介质中的过程 i. 语法:public void Serialize(序列化过程的文件流,保存的对象) b. 返序列化:是从特定存储介质中将数据重新构建对象的 ...
- C++命名空间
C++命名空间 本讲基本要求 * 掌握:命名空间的作用及定义:如何使用命名空间. * 了解:使用早期的函数库 重点.难点 ◆命名空间的作用及定义:如何使用命名空间. 在学习本书 ...
- C++@命名空间(转)
转自http://hi.baidu.com/rainysky_2006/blog/item/a490e01fc3de7964f724e4d1.html 本讲基本要求 * 掌握:命名空间的作用及定义:如 ...
- C++命名空间 namespace的作用和使用解析
一. 为什么需要命名空间(问题提出) 命名空间是ANSIC++引入的可以由用户命名的作用域,用来处理程序中 常见的同名冲突. 在 C语言中定义了3个层次的作用域,即文件(编译单元).函数和复合语句.C ...
- <转载>C++命名空间
原文http://blog.csdn.net/liufei_learning/article/details/5391334 一. 为什么需要命名空间(问题提出) 命名空间是ANSIC++引入的可以由 ...
- C++命名空间【转】
本讲基本要求 * 掌握:命名空间的作用及定义:如何使用命名空间. * 了解:使用早期的函数库 重点.难点 ◆命名空间的作用及定义:如何使用命名空间. 在学习本书前面各章时,读者 ...
- 【转】C++命名空间 namespace的作用和使用解析
一. 为什么需要命名空间(问题提出) 命名空间是ANSIC++引入的可以由用户命名的作用域,用来处理程序中 常见的同名冲突. 在 C语言中定义了3个层次的作用域,即文件(编译单元).函数和复合语句.C ...
- 命名空间 <iostream>和<iostream.h> 由程序设计者命名的内存区域
namespace_百度百科 https://baike.baidu.com/item/namespace/1700121?fromtitle=命名空间 namespace即“命名空间”,也称“名称空 ...
随机推荐
- 行列式(三):n阶行列式
1.数学定义 n阶行列式定义如下: 2.算法实现 函数名: GetValue() 功能:返回一个行列式的值 Private Function GetValue() Dim gValue As Do ...
- CHARFORMAT2 structure
CHARFORMAT2 structure 包含在丰富的编辑控件中的字符格式设置的信息.charformat2是微软丰富的编辑CHARFORMAT结构2扩展.微软丰富的编辑2允许您使用结构与em_ge ...
- C#微信公众平台开发—高级群发接口
涉及access_token的获取请参考<C#微信公众平台开发—access_token的获取存储与更新> 一.为了实现高级群发功能,需要解决的问题 1.通过微信接口上传图文消息素材时,J ...
- 在Gridview如何进行每行单元格比较
有在论坛上看到一个问题,就是在Gridview控件中,需要对几个列的数值进行比较,原问题如下: 先在数据库中准备数据: CREATE TABLE [dbo].[RecordTime] ( Id ,) ...
- mvc jquery 修改 viewbag
[HttpGet] public ActionResult Modify(int id) { Books mod=db.Books.Where(b = ...
- DokuWiki整合Zentao的用户授权及分组体系
老外们把精力都放在了怎样做通用性上面了. Doku后台有切换授权方式的选项,改成mysql. 注:如下修改mysql.conf.php后,要把分组和权限设置结合起来,还需要配置dokuwiki的分组, ...
- XML EXtensible Markup Language
1.基础:XML设计被用来传输和存储数据:全称是EXtensible Markup Language.它的设计宗旨是传输数据,而不是显示数据.xml的标签没有被预定义,需要由用户自行定义标签.xml被 ...
- JAVA开发环境和IntelliJ工具安装
在本地开发机中进行web项目的开发,部署到生产环境进行产品发布时,需要将web应用的文件打包成war包,War包可以放在Tomcat下的webapps或者word目录下,随着tomcat服务器的启动, ...
- InfluxDB学习之InfluxDB的基本概念
InfluxDB与传统数据库在概念上有许多的不同,本文就给大家介绍下InfluxDB中的一些基本概念,更多InfluxDB详细教程请看:InfluxDB系列学习教程目录 InfluxDB技术交流群:5 ...
- Mdrill 安装部署(单机版)
前期: -------------------------------------------------------- 准备: 1.centos6.5 /7 x86_64(后期会更改主机名称) 2. ...