C++命名空间 看完带你理解!

     在C++中,标识符(identifier)可以用来表示符号常量、变量、宏、函数、结构、枚举、类以及对象等等。为了在大型程序设计和使用各种C++库时避免标识符命名冲突的问题,C++引入了命名空间(namespace)这一关键概念,以更好地管理标识符的作用域。

标准C++中包含了一个名为"std"的命名空间,其中定义了C++标准程序库的所有标识符。例如,标准库中的"iostream"、"vector"等类都在"std"命名空间中定义。在使用这些标识符时,可以通过使用声明(using namespace std)或在标识符前加上命名空间前缀(如"std::string"、"std::vector")来指明所属的命名空间。

C中的命名空间

与此不同的是,在C语言中,只存在一个全局作用域,所有全局标识符共享同一个作用域,可能会导致标识符之间的冲突问题。

C++中命名空间的概念

而C++引入了命名空间的概念,将全局作用域划分为不同的部分,不同命名空间中的标识符可以具有相同的名称而不会发生冲突。此外,命名空间还可以相互嵌套,而全局作用域也可以视为默认命名空间。

命名空间的定义方式如下:

namespace 名称 { ... }

如果名称被省略,那么命名空间就是匿名的,匿名命名空间内的内容在默认命名空间中。

C++中的命名空间用法如下

1. 使用整个命名空间:通过 `using namespace name;` 来引入整个命名空间。

2. 使用命名空间中的变量:通过 `using name::variable;` 来引入特定命名空间中的变量。

3. 使用默认命名空间中的变量:通过 `::variable` 来引用全局命名空间中的变量。

命名空间可以由多个独立的部分组成,这些部分可以分散在不同的文件中。因此,如果一个命名空间的某个部分需要访问另一个文件中定义的名称,仍然需要声明该名称。

在使用C++标准库时,通常需要引入 `namespace std` 才能正确使用其中的函数和对象,例如 `cout`。如果不使用 `using namespace std`,则需要像这样使用:`std::cout`。

为了与C语言区分开,C++标准规定头文件不需要使用后缀".h"。

更多学习资料、源码、笔记可进入学习群领取:558970390,欢迎各位正在学习和准备学习C/C++的小伙伴一起来讨论学习!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我真的不会C语言o

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值