linux社区爱心援助Linux认证系列教程业界动态站务新闻公司招聘建议留言网址大全LPI专题CISCO专题
设为首页
加入收藏
管理团队
JSP  
JAVA  
PERL  
 您的位置:首页 > article > Linux开发区 > 软件开发 >
栏目导栏
资料搜索
热门文章
·Linux 下 C 语言编程
·Linux下的通用线程池创建
·C++字符串转换篇
·linux C 进程操作篇
·linux上的C/C++编译器gcc/egcs
·GCC使用手册
·linux C 文件权限控制篇
·fopen()函数的参数说明
·linux C 接口处理篇
·在Redhat Linux上安装 GCC 编译
·C语言运算符
·GCC使用指南
·Linux下C开发环境的构成和安装
·Linux常用C函数-日期时间篇
·GCC使用手册与常用命令
最新文章
·从脚本编写到面向对象的 Pytho
·Linux平台下的Maya:Blender 简
·epoll入门
·在Linux下发布程序需要注意版本
·Suse Linux系统下JAVA AWT界面
·Vim编译器配合ctags实现函数原
·在Ubuntu Linux 8.04上构建GCC
·Linux操作系统下Socket编程地址
·将VC程序移植到Linux系统的几点
·Linux下malloc/free与new/dele
·Linux下用GTK和socket实现简单
·Linux操作系统下让Tomcat启动在
·Linux操作系统中如何编译C程序
·几种常被人们忽略的Linux系统下
·Eclipse编程工具 在Ubuntu下的
Google
 
C++中的命名空间
[ 作者:  加入时间:2007-09-12 11:41:22  来自:Linux联盟收集整理 ]

1C++中的命名空间

 

Java中的package类似,C++也有关键字namespace来将多个函数或者类型封装在一起加以管理。

   名字空间的产生与一个类的产生非常相似。如

namespace MyLib {

   //declarations

}

namespaceclassstructunionenum有着明显的区别:

1)   namespace只能在全局范畴定义,但他们之间可以互相嵌套;

2)   namespace定义的末尾,右大括号的后面不必要跟一个分号;

3)   一个namespace可以在多个头文件中定义,就好像重复定义一个类一样;多个定义中的函数或者类型合在一起构成整个namespace

4)   一个namespace可以用另一个名字来作为别名。使用namespace Tom=MyLib;即可。

5)   我们不能像类那样创建一个namespace的实例。

每个编译单元中(源文件等)都可以包含一个未命名的名字空间―――在namespace后面没有标识符。要保证每个编译单元只有一个未命名的名字空间。

   另外可以在名字空间的类定义之内插入一个friend声明,如:

       namespace me{

           class us{

//…

static int i;

void hello();

friend you();

};

}

这样函数you()就成了名字空间me的一个成员。

 

2、使用命名空间

   可以用两种方法在一个命名空间中引用同一个名字:一种是范围分解运算符,如me::us::i;另一种是用using关键字,可以使用using引入整个名字空间或者只引入名字空间中的具体函数等。如:

      namespace U{

          void f();

          void g();

}

 

namespace V{

    void f();

    void g();

}

 

void func(){

   using namespace U;

  using V::f;

  f(); //call V::f();

  U::f();

}

Linux联盟收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站Linux论坛讨论
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
 ·TEA加密算法的C/C++实现  (2007-09-11 11:02:34)
 ·论C/C++函数间动态内存的传递  (2007-09-02 22:46:09)
 ·在Ubuntu Linux中运行TC3(Turbo C++ 3.0)  (2007-08-13 09:18:43)
 ·在C/C++中如何构造通用的对象链表  (2007-06-13 17:08:09)
 ·浅议C++/CLI的gcnew关键字  (2007-06-08 19:34:48)
 ·用C++库连接Oracle, MS SQL, MySQL等数据库  (2007-06-04 12:19:01)
 ·Linux环境中使用的开放源代码 C/C++ 矩阵库  (2007-05-31 07:24:18)
 ·C++数据类型的属性与限制  (2007-05-22 07:16:16)
 ·C/C++程序编译步骤详解  (2007-04-24 11:57:48)
 ·用VC++开发Oracle数据库应用程序详解  (2007-04-03 10:20:23)