0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一文了解C++的命名空间

如意 来源:CSDN 作者:cherrydreamsover 2020-06-29 14:48 次阅读

一、命名空间

1.引入

C++中,变量、函数和类都是大量存在的,这些变量、函数和类的名称将都存在于全局命名空间中,会导致很多冲突, 使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字污染,Namespace关键字的出现就是针对这种问题的。

2.定义

(1)命名空间的定义

一文了解C++的命名空间

(2)相同的命名空间可以分割在不同的文件中,编译器最后都会合成在同一个命名空间下

一文了解C++的命名空间

(3)命名空间可以嵌套

一文了解C++的命名空间

(4)没有名称的命名空间(该命名空间的内容相当于全局变量)

一文了解C++的命名空间

说明:

(1)从本质上讲,一个命名空间就定义了一个范围,在命名空间中定义的任何东西都局限于该命名空间中。

(2)没有名称的命名空间可以只创建在声明它的文件才可见的标识符。(只有在声明这个命名空间的文件中,它的成员才是可见的,它的成员可以被直接访问,不需要命名空间名称来修饰。对于其它文件,该命名空间是不可见的)。

(3)把全局名称的作用域限制在声明他的文件中的一种方式就是把它的声明为静态的,尽管C++支持全局静态,但最好的方式还是使用未命名的空间。

3.使用方式

(1)命名空间内直接使用

一文了解C++的命名空间

(2)命名空间名称限制

一文了解C++的命名空间

(3)导入命名空间

一文了解C++的命名空间

(4)使用谁引入谁

一文了解C++的命名空间

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 函数
    +关注

    关注

    3

    文章

    4327

    浏览量

    62569
  • C++
    C++
    +关注

    关注

    22

    文章

    2108

    浏览量

    73618
  • 变量
    +关注

    关注

    0

    文章

    613

    浏览量

    28360
收藏 人收藏

    评论

    相关推荐

    深入C++内存管理

    说到 C++ 的内存管理,我们可能会想到栈空间的本地变量、堆上通过 new 动态分配的变量以及全局命名空间的变量等,这些变量的分配位置都是由系统来控制管理的,而调用者只需要考虑变量的生
    发表于 11-12 09:29 617次阅读

    初识C++

    后接-个或多个字符组成的。后缀告诉系统这个文件是C++程序。不同编译器使用不同的后缀命名约定,最常见的包括. cc、.cxx、.cpp、.cp及.
    发表于 07-17 15:14 220次阅读
    <b class='flag-5'>一</b><b class='flag-5'>文</b>初识<b class='flag-5'>C++</b>

    C++零基础教程之命名空间,轻松上手CC++区别之命名空间

    编程语言C++语言
    电子学习
    发布于 :2023年01月14日 12:14:37

    C++笔记003:C++个小程序开始

    ;pause");}第行的头文件我学过C语言,还是能够多少理解些的,第二行的std命名空间就不知所云了,std 是标准
    发表于 03-05 12:51

    C++笔记008:C++命名空间 namespace的作用和使用解析

    定义了自己的命名空间就可以解决这个问题,即使重名,只要分属不同的命名空间就不会引起问题。在 C语言中定义了3个层次的作用域,即文件(编译单元
    发表于 08-11 12:30

    Linux的命名空间机制

    Linux命名空间概述
    发表于 03-18 14:40

    命名空间的实现

    。更多信息请参见手册页unshare(2)。在进程已经使用上述的两种机制之从父进程命名空间分离后,从该进程的角度来看,改变全局属性不会传播到父进程命名
    发表于 05-24 06:21

    python常规包与命名空间

    python常规包与命名空间包1. 常规包在 Python 3.3 之前或者说 Python 2 中,个包想要被导入使用,那么该包内必须要有 __init__.py 文件,这个文件是 Python
    发表于 03-11 15:46

    C++命名空间的几大用法

    译者注:可能很多程序员对C++已经非常熟悉,但是对命名空间经常使用到的地方还不是很明白,这篇文章就针对命名空间
    发表于 09-28 18:31 0次下载

    C++程序设计教程之C++工具的详细资料说明

    本文档的详细介绍的是C++程序设计教程之C++工具的详细资料说明主要内容包括了:1. 异常处理,2. 命名空间,3. 使用早期的函数库
    发表于 03-14 16:39 4次下载
    <b class='flag-5'>C++</b>程序设计教程之<b class='flag-5'>C++</b>工具的详细资料说明

    C++程序设计的基础知识初步了解C++的资料免费下载

    本文档的主要内容详细介绍的是C++程序设计的基础知识初步了解C++的资料免费下载包括了:1 认识C++,2 C++的现状和发展,3
    发表于 06-10 08:00 25次下载
    <b class='flag-5'>C++</b>程序设计的基础知识初步<b class='flag-5'>了解</b><b class='flag-5'>C++</b>的资料免费下载

    c++知识要点

    章 开始 1.1 编写个简单的C++程序 int main() { return 0; } 每个C++程序都包含个或多个
    发表于 06-20 09:45 0次下载

    C++项目常见的命名规范

    本系列是开源书C++ Best Practises[1]的中文版,全书从工具、代码风格、安全性、可维护性、可移植性、多线程、性能、正确性等角度全面介绍了现代C++项目的最佳实践。本文是该系列的第二篇。
    的头像 发表于 09-27 09:12 2078次阅读

    C++入坑指南

    C++最主要的用途是开发基础软件设施,和在有限资源的条件上运行的应用程序。因为它有种独特的能力,可以直接操作它所运行的硬件或者机器,即使在硬件空间资源受限的情况下,C++程序依旧可以
    的头像 发表于 01-04 15:56 812次阅读

    C++简史:C++是如何开始的

    MISRA C++:2023,MISRA® C++ 标准的下个版本,来了!为了帮助您做好准备,我们介绍了 Perforce 首席技术支持工程师 Frank van den Beuken 博士撰写
    的头像 发表于 01-11 09:00 581次阅读
    <b class='flag-5'>C++</b>简史:<b class='flag-5'>C++</b>是如何开始的