当前位置:七道奇文章资讯编程技术VC/C++编程
日期:2011-03-22 13:54:00  来源:本站整理

<b>Google C++编程气势指南(二):作用域</b>[VC/C++编程]

赞助商链接



  本文“<b>Google C++编程气势指南(二):作用域</b>[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

作用域

1. 命名空间(Namespaces)

在.cc文件中,倡导利用不具名的命名空间(unnamed namespaces,译者注:不具名的命名空间就像不具名的类一样,仿佛被介绍的很少:-().利用具名命名空间时,其名称可基于项目或途径名称,不要利用using指导符.

定义:命名空间将全局作用域细分为差别的、具名的作用域,可有效避免全局作用域的命名冲突.

长处:命名空间供应了(可嵌套)命名轴线(name axis,译者注:将命名分割在差别命名空间内),当然,类也供应了(可嵌套)的命名轴线(译者注:将命名分割在差别类的作用域内).

举例来说,两个差别项目的全局作用域都有一个类Foo,这样在编译或运行时造成冲突.假如每个项目将代码置于差别命名空间中,project1::Foo和project2::Foo作为差别标记自然不会冲突.

缺陷:命名空间具有迷惑性,因为它们和类一样供应了额外的(可嵌套的)命名轴线.在头文件中利用不具名的空间简单违反C++的唯一定义原则(One Definition Rule (ODR)).

结论:按照下文将要提到的战略公道利用命名空间.

1) 不具名命名空间(Unnamed Namespaces)

在.cc文件中,答应乃至倡导利用不具名命名空间,以避免运行时的命名冲突:

namespace {                  // .cc 文件中
// 命名空间的内容无需缩进
enum { UNUSED, EOF, ERROR };     // 常常利用的标记
bool AtEof() { return pos_ == EOF; }  // 利用本命名空间内的标记EOF
} // namespace

但是,与特定类关联的文件作用域声明在该类中被声明为范例、静态数据成员或静态成员函数,而不是不具名命名空间的成员.像上文展示的那样,不具名命名空间完毕时用注释// namespace标识.

不能在.h文件中利用不具名命名空间.


  以上是“<b>Google C++编程气势指南(二):作用域</b>[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • <b>hosts是什么 hosts文件在什么位置 若何改正hosts</b>
  • <b>在 Windows 8 中手动安装语言包</b>
  • <b>五个常见 PHP数据库问题</b>
  • Windows中Alt键的12个高效快速的利用本领介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • <b>详解MySQL存储历程参数有三种范例(in、out、inout)</b>
  • <b>Win8系统恢复出来经典的开始菜单的办法</b>
  • <b>Win8系统花屏怎么办 Win8系统花屏的办理办法</b>
  • <b>Windows 7系统下无线网卡安装</b>
  • <b>为什么 Linux不需求碎片整理</b>
  • <b>Windows 8中删除账户的几种办法(图)</b>
  • <b>教你如安在win7下配置路由器</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .