c++ namespace
来源:互联网 发布:网络动画视频 编辑:程序博客网 时间:2024/06/05 20:17
名字空间:比如一个公司有研发部和测试部,两个部门各有一个人叫做张三,有一天他们其中的一个人在双十一买了一件东西,快递员送到的时候喊张三的话就有点模糊了,搞不清楚是喊的哪个张三,如果快递小哥说的是“测试部的张三”,那肯定就清楚了。
名字空间的作用:主要用来避免名字污染---即相同的函数名
匿名名字空间:野孩子,没人管的都属于匿名名字空间,访问的话请用::表示作用域
名字空间指令:using namespace std; //cout << "Hello world" << endl;
名字空间声明:using std::cout; //cout << "Hello world" << std::endl;
注意:1)内层标示符隐藏外层同名标示符
2)嵌套的名字空间需要逐层分解
3)可以通过名字空间别名书写简化 - namespace ns_three = ns1::ns2::ns3;
比较好的名字空间的管理,请见ACE相关Versioned_Namespace.h
//Versione.h#ifndef __VERSION_H__#define __VERSION_H__#define TOSTRING(s) #s#define STRINGIFY(s) TOSTRING(s)#define ACE_MAJOR_VERSION 6#define ACE_MINOR_VERSION 2#define ACE_BETA_VERSION 6#define ACE_VERSION STRINGIFY(ACE_MAJOR_VERSION ##.## ACE_MINOR_VERSION ##.## ACE_BETA_VERSION)#endif
//Versioned_Namespace.h#ifndef __VERSION_NAMESPACE_H__#define __VERSION_NAMESPACE_H__#ifndef __CONFIG_H__# error This header is only meant to be included by or after "config.h".#endif#ifdef ACE_HAS_VERSIONED_NAMESPACE# ifndef ACE_VERSIONED_NAMESPACE_NAME# include "version.h"# define ACE_MAKE_VERSIONED_NAMESPACE_NAME_IMPL(MAJOR,MINOR,BETA) ACE_ ## MAJOR ## _ ## MINOR ## _ ## BETA# define ACE_MAKE_VERSIONED_NAMESPACE_NAME(MAJOR,MINOR,BETA) ACE_MAKE_VERSIONED_NAMESPACE_NAME_IMPL(MAJOR,MINOR,BETA)# define ACE_VERSIONED_NAMESPACE_NAME ACE_MAKE_VERSIONED_NAMESPACE_NAME(ACE_MAJOR_VERSION,ACE_MINOR_VERSION,ACE_BETA_VERSION)# endif //end of ACE_VERSIONED_NAMESPACE_NAME# define ACE_BEGIN_VERSIONED_NAMESPACE_DECL namespace ACE_VERSIONED_NAMESPACE_NAME {# define ACE_END_VERSIONED_NAMESPACE_DECL } using namespace ACE_VERSIONED_NAMESPACE_NAME;#else //!ACE_HAS_VERSIONED_NAMESPACE# define ACE_VERSIONED_NAMESPACE_NAME# define ACE_BEGIN_VERSIONED_NAMESPACE_DECL# define ACE_END_VERSIONED_NAMESPACE_DECL#endif //end of ACE_HAS_VERSIONED_NAMESPACE#endif
0 0
- c#namespace
- C++::namespace
- c-namespace
- C++namespace
- C++namespace
- C++-namespace(命名空间)
- C++-namespace(命名空间)
- C++namespace的使用
- C ++ Namespace (computer science)
- C++namespace命名空间
- 【Visual C++】关于namespace
- C/C++ namespace
- c++-tissue_habit-namespace
- C++namespace命名空间
- c++のnamespace
- [C++]namespace命名空间
- c++namespace于iostream
- C++:命名空间(namespace)
- Linux procfs详解
- Bugfree邮件发送设置(以QQ邮箱为例)
- poj The Luckiest number
- 分享java程序设计中一个小程序:获取当前系统日期和时间在小程序中显示出来
- thinkphp模板中可用常量
- c++ namespace
- servlet sendRedirect Invalid character constant
- ASIHTTPRequest
- 【iOS】Xcode6正式版本下,如何创建Empty Application
- 《机器学习实战》之朴素贝叶斯
- linux_1 crontab rmp dpkg
- Struts2拦截器原理以及实例
- osx整理
- USB hub驱动分析