Chinaunix首页 | 论坛 | 博客
  • 博客访问: 156342
  • 博文数量: 39
  • 博客积分: 1395
  • 博客等级: 中尉
  • 技术积分: 413
  • 用 户 组: 普通用户
  • 注册时间: 2009-08-26 15:07
文章分类

全部博文(39)

文章存档

2012年(5)

2011年(16)

2010年(14)

2009年(4)

我的朋友

分类: C/C++

2011-03-23 18:03:22

http://hi.baidu.com/wangjianzhong1981/blog/item/3de6e30eefc9e6c37acbe16d.html

In   C++,   one   can   use   an   unnamed   namespace   to   declare   an   entity   local   to   a   file.   An   unnamed   namespace   definition   begins   with   the   keyword   namespace.   Because   the namespace   is   unnamed,   no   name   follows   the   namespace   keyword.   Following   the   namespace   keyword   is   a   block   of   declarations   delimited   by   curly   braces.  
For   example:
//   -----   SortLib.C   -----
namespace   {
          void   swap(   double   *d1,   double   *d2   )   {   /*   ...   */   }
}
//   definitions   of   the   sort   functions   as   above
The   function   swap()   is   visible   only   within   the   file   SortLib.C.   If   another   file   contains   an   unnamed   namespace   with   the   definition   of   a   function   swap(),   the   definition   introduces   a   different   function.   The   fact   that   there   exist   two   definitions   for   the   functions   swap()   is   not   an   error,   because   the   functions   are   different   functions.   Unnamed   namespaces   are   not   like   other   namespaces;   the   definition   of   an   unnamed   namespace   is   local   to   a   particular   file   and   never   spans   multiple   text   files.
The   name   swap()   can   be   referred   to   in   its   short   form   in   the   file   SortLib.C,   following   the   definition   of   the   unnamed   namespace. It   is   not   necessary   to   use   the   scope   operator   to   refer   to   members   of   unnamed   namespaces.
void   quickSort(   double   *d1,   double   *d2   )   {
          //   ...
          double*   elem   =   d1;
          //   ...
          //   refers   to   unnamed   namespace   member   swap()
          swap(   d1,   elem   );
          //   ...
}
The   members   of   an   unnamed   namespace   are   program   entities.   The   function   swap()   can   therefore   be   called   throughout   the   duration   of   the   program.   However,   the   names   of   the   members   of   an   unnamed   namespace   are   visible   only   within   a   specific   file   and   are   invisible   to   the   other   files   that   make   up   the   program.

阅读(1269) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~