C++学习之详解命名空间

news/2024/11/23 5:14:31/

1.理解命名空间

namespace命名空间正如翻译的那样给命名划分空间,每个函数名或变量等都有自己的使用范围,避免的使用函数名冲突的问题;

打个比方,一个班如果有两人叫做张三,那么其中如何区分这两个人那么就得给他们起别名了,比如胖张三和瘦张三。

 代码中也是同理

2.使用命名空间

namespace(关键字)  (自定义名字){// 代码声明
}
//调用命名空间
(自定义名字)::(变量或者函数);
#include <stdio.h>
namespace std
{void cout(){printf("cout");}}int main()
{std::cout();return 0;
}

有人可能觉得每次调用划范围的函数都要带上空间名太繁琐了

可以使用 using关键字来省去空间名

#include <stdio.h>
namespace std
{void cout(){printf("cout");}}
using std::cout;
int main()
{cout();return 0;
}

3.不连续命名空间

假设我们正在开发一个图形处理库,其中包含了各种图形相关的函数和类。我们可以使用命名空间将这些功能进行组织和分类。

首先,在一个文件中定义一个命名空间 Geometry,用于包含图形相关的函数和类:

// Geometry.hnamespace Geometry
{class Point{//...};void drawLine(){//...printf("drawLine");}//...
}

然后,我们可以在另一个文件中扩展该命名空间,添加更多的函数和类:

// Shapes.hnamespace Geometry
{class Circle{//...};void drawRectangle(){//...printf("drawRectangle");}//...
}

通过使用不连续的命名空间,我们可以将功能按逻辑进行划分,比如 Geometry .h命名空间负责基本几何图形的操作,Shapes.h 命名空间负责特定形状的绘制等。

在使用时,我们可以根据需要选择性地包含所需的命名空间,并使用其提供的功能。

// main.cpp
#include <stdio.h>
#include "Geometry.h"
#include "Shapes.h"int main() {Geometry::drawLine();Geometry::drawRectangle();return 0;
}

通过这样的设计,我们可以更好地组织和管理代码,避免命名冲突,并且在需要扩展功能时,只需添加相应的文件并扩展命名空间即可。

4.嵌套命名空间

顾名思义可以像函数一样嵌套调用

命名空间可以嵌套,您可以在一个命名空间中定义另一个命名空间,如下所示:
namespace namespace_name1 {// 代码声明namespace namespace_name2 {// 代码声明}
}
可以通过使用 :: 运算符来访问嵌套的命名空间中的成员:// 访问 namespace_name2 中的成员
using namespace namespace_name1::namespace_name2;// 访问 namespace_name1 中的成员
using namespace namespace_name1;

举个例子:

#include <stdio.h>
namespace std
{void cout(){printf("cout");}namespace std1{void cout(){printf("cout1");}}}
using std::std1::cout;
int main()
{cout();return 0;
}


http://www.ppmy.cn/news/489689.html

相关文章

推荐系统学习

推荐系统 系统职能&#xff1a;头条/抖音/快手&#xff0c;都是以推荐系统作为流量的分发的主要手段&#xff1b; 职业发展&#xff1a;大数据处理/流式计算/数据挖掘/机器学习/高并发服务等领域。 更具用户的离十信息和行为&#xff0c;向用户推荐他感兴趣的内容 基于行为的…

GitHub 打不开图片解决方法

一步解决&#xff1a; cmd 输入ipconfig /flushdns 亲测可用

ipad怎么压缩文件?教你一招快捷压缩图片

平时喜欢用iPad的小伙伴&#xff0c;在遇到需要将jpg图片格式压缩大小的时候&#xff0c;很难找到一款心仪的图片压缩工具&#xff0c;那么ipad怎么压缩文件呢&#xff1f;今天给大家分享一个压缩jpg图片的方法&#xff0c;使用压缩图的图片在线处理功能可以直接用ipad压缩照片…

手机打开html没有图片,网页看不到图片怎么办?图片打不开的解决办法

网页图片地址失效&#xff0c;不如图片被网站服务器删除或者网站服务器出了故障&#xff0c;导致图片无法打开。 1、您可以使用鼠标在图片上右键&#xff0c;然后选择查看【属性】&#xff0c;然后复制图片地址&#xff0c;单独在浏览器打开试试&#xff0c;如下图所示 2、然后…

iPhone手机拍的图片为什么电脑上打不开?秒懂

iPhone自从升级到iOS11&#xff0c;控制面板做了很大的调整&#xff0c;给用户带来了很多的便捷之处&#xff0c;但是带来方便的同时也有一些小问题&#xff0c;不过既然是新系统一定是利大于弊&#xff0c;这些小问题不足为惧&#xff0c;就像拍出来的照片格式虽然是heic格式&…

最近百度图片总是打不开

image.baidu.com最近总是打不开。显示该页无法显示的错误提示。

jpg格式图片打不开怎么办

jpg图片是我们很常见的图片格式&#xff0c;打开方法也很简单&#xff0c;只要点击即可打开。当然也会遇到有点开后&#xff0c;却无法打开的图片。虽然比较少但还是会遇到&#xff0c;那么当我们遇到jpg格式图片打不开怎么办呢?您可以通过下面的详细教程来快速图片打不开的图…