美文网首页
C++中namespace

C++中namespace

作者: darkness605 | 来源:发表于2020-10-28 21:43 被阅读0次

C语言定义了3个层次的作用域:文件、函数和复合语句。

C++ 引入了类的作用域,类是在文件内的。

在不同的作用域中,可以定义相同名字的变量,互不干扰,编译器能够区别它们。

命名空间的概念:

C语言中,只有一个全局作用域,所有全局标识符共享一个作用域,因此绝对不能重名。
但随着系统越来越复杂,通常不会仅由一个人来开发,不同的人开发同一个系统,不可避免地会出现变量或函数的命名冲突,当将所有人的代码结合到一起时,就会因为变量或函数重名,导致编译失败。

因此,C++提出了命名空间的概念:

命名空间将全局作用域分成不同的部分;
不同命名空间的标识符可以同名,不会发生冲突;
命名空间可以嵌套。

namespace Name1
{
  namespace Name2
  {
    /*...*/
  }
    /*...*/
}

全局作用域也叫默认命名空间。C++引入命名空间的概念,就是为了避免命名冲突的一种机制。

使用方式
C++的命名空间,有两种使用方式:
导入整个命名空间:using namespace name;
只导入命名空间中的某个变量:using name::variable

// 导入整个std命名空间到当前作用域
using namespace std;
// 只导入cout到当前作用域
using std::cout;

转自:https://zhuanlan.zhihu.com/p/156137900?from_voters_page=true

相关文章

  • [C++之旅] 1 namespace

    [C++之旅] 1 namespace

  • 05 NDK-C++基础(一)

    1 C++对C的加强 1.1 namespace命名空间 1.1.1 C++命名空间基本概念 在C/C++中,变量...

  • C++ 命名空间namespace

    本文转载自:C++ 命名空间namespace 在C++中,名称(name)可以是符号常量、变量、宏、函数、结构、...

  • C++入门基础

    C++入门基础 namespace专题讲座 namespace概念 所谓namespace,是指标识符的各种可见范...

  • C++中namespace的用法

    1. 命名空间中可以放变量、函数、结构体 2. 可以随时随地给Namespace添加它的成员变量 3. 可以嵌套定...

  • C++ namespace

    A::x 类似于 A.x ,运行结果:

  • c++ namespace

    学习c++的同学大概非常习惯在程序的开头部分加上这句: 可能由于太熟悉了,反而忽略了这句到底是做什么的。这句中,一...

  • 每天一个知识点(六)

    对namespace的理解。 C++中为什么使用命名空间namespace,举个例子,一个数学老师带着两个班级的课...

  • C++ 基础知识点大纲

    C++ C++对C的加强 namespace命名空间 C++命名空间基本概念 C++命名空间定义,使用语法,意义 ...

  • 001-01 namespace命名空间

    1 namespace 命名空间 1.1 历史 头文件中 C++ 标准对 ".h" 与 不带".h" 的区别 是为...

网友评论

      本文标题:C++中namespace

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