美文网首页
第三章 3.1 命名空间

第三章 3.1 命名空间

作者: TimeKeeper_666 | 来源:发表于2017-08-29 20:31 被阅读0次

    命名空间

    • 使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突

    • C++标准程序库中的所有标识符都属于命名空间std

    • 使用std中的库函数时需要using声明

    • std::cin 表示编译器应该从左边的命名空间中寻找cin这一库函数

    • 声明格式 using namespace::name。
      书上的声明方法虽然繁琐,但是可以避免命名冲突,一般的做法是用using namespace::std
      (makedown用两个星号包裹文字是加粗,一个星号是斜体)

    • 但是需要注意的是,using namespace::std会将所有命名空间里的所有名称导出,如果放在.h中,可能会与局部名称冲突。

    一般说来,使用using命令比使用using编译命令更安全,这是由于它只导入了制定的名称。如果该名称与局部名称发生冲突,编译器将发出指示。using编译命令导入所有的名称,包括可能并不需要的名称。如果与局部名称发生冲突,则局部名称将覆盖名称空间版本,而编译器并不会发出警告。另外,名称空间的开放性意味着名称空间的名称可能分散在多个地方,这使得难以准确知道添加了哪些名称。

    • 所以一个能平衡洁癖和效率的方法是只在cpp文件里面using namespace

    • 第18章 第二节专门讲了命名空间的创建,可以自己建一个命名空间,包含std。从而避免冲突。后续会进一步补充这里。

    相关文章

      网友评论

          本文标题:第三章 3.1 命名空间

          本文链接:https://www.haomeiwen.com/subject/jdsadxtx.html