C++ Primer 5th笔记(chap 18 大型程序工具) using指示

Posted thefist11

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ Primer 5th笔记(chap 18 大型程序工具) using指示相关的知识,希望对你有一定的参考价值。

1. 定义

using指示以关键字using开始,后面是关键字namespace以及命名空间的名字

1.1 vs using声明

无法控制那些名字是可见的,因为所有名字都是可见的

  • using 声明, 我们只是简单地令名字在局部作用域内有效。
  • using指示, 整个命名空间的所有内容变得有效。

通常情况下, 命名空间中会含有一些不能出现在局部作用域中的定义, 因此, using 指示一般被看作是出现在最近的外层作用域中

1.2 作用域

using指示可以出现在全局作用域、局部作用域和命名空间作用域中,但是不能出现在类的作用域中

// namespace A and function f are defined at global scope
namespace A {
    int i, j;
}

void f()
{
    using namespace A;      // injects names from A into the global scope
    cout << i * j << endl; // uses i and j from namespace A
    //...
}

1.3

using 指示可能会造成二义性。
using 指示也并非一无是处, 例如在命名空间本身的实现文件中就可以使用using 指示

以上是关于C++ Primer 5th笔记(chap 18 大型程序工具) using指示的主要内容,如果未能解决你的问题,请参考以下文章

C++ Primer 5th笔记(chap 18 大型程序工具)noexcept

C++ Primer 5th笔记(chap 18 大型程序工具)异常处理

C++ Primer 5th笔记(chap 18 大型程序工具)捕获异常

C++ Primer 5th笔记(chap 18 大型程序工具)命名空间特性

C++ Primer 5th笔记(chap 18 大型程序工具) 重载与命名空间

C++ Primer 5th笔记(chap 18 大型程序工具)构造函数与虚继承