当前位置: 首页 > news >正文

从0到1学习c++ 命名空间

也是好久没写博客了,主播这半年一直在忙别的领域,在磁力驱动领域干了一年,最好发现自己对这个领域并不是很感兴趣,做这个领域多半都是为了发文章,现在闲下来了,主播终于也是过上好日子了,主播又可以继续从事嵌入式行业了,嵌入式赢!!!

好了废话不多说,这几天在学习c++,想着顺便写一篇博客,记录一下自己学c++的过程

1.命名空间

在初学c++的时候听到命名空间这个概念,感觉还是挺高级的,但是深入去学发现其实跟c语言没啥区别,我对命名区间的理解很简单(虽然不一定正确),就是在我们日常写c语言中我们会遇见一个问题就是我们会对某一个变量重复命名导致在调用的时候出现问题,那么解决问题也很简单,就是把实现具体功能的变量封装在其指定的文件夹中并用static进行定义防止在其他文件夹中变量被更改,但是在c++中给出的解决办法就是单独给一些变量和函数开辟一片空间,你想要调用这个变量或者是这个函数 你就必须调用这个命名空间,这样就可以防止被重复调用的问题,具体我们看代码就行了

下面就是一个简单的命名空间

namespace MyNamespace {int value = 42;          // 变量void print() { /*...*/ } // 函数class MyClass { /*...*/ }; // 类
}

如下就是我们对命名空间的使用

// 方式1:作用域解析运算符 ::
MyNamespace::value = 100;
MyNamespace::print();// 方式2:using 声明(引入特定成员)
using MyNamespace::print;
print(); // 可直接调用// 方式3:using 指令(引入整个命名空间 - 慎用!)
using namespace MyNamespace;
value = 200; // 直接访问

 再举一个具体点的列子就是,要看清楚每一个代码再那个文件夹中

.h文件
namespace cir {
double PI=3.1415926;获取周长的函数
Double Getlenth (Double R)
{
return 2*PI*r
}Double GetaifiCircle( Double R)
{
return PI*r*r;
}}   
.c文件中
//不使用引用 想要调用需加::
#include "cir.h"
#include <stdio.h>
using namespace std
int main()
{double myr=5;
printf("lenth:%lf,are:%lf\n",cir::getlenth(myr),cir::getaificircle(myr));
return 0;
}//如果使用引用,也就是用using namespace cir
#include "cir.h"
#include <stdio.h>
using namespace std
using namespace cir
int main()
{double myr=5;
printf("lenth:%lf,are:%lf\n",getlenth(myr),getaificircle(myr));
return 0;
}

http://www.lryc.cn/news/598457.html

相关文章:

  • 【Linux】linux基础开发工具(一) 软件包管理器yum、编辑器vim使用与相关命令
  • 【YOLOv8改进 - 特征融合】FCM:特征互补映射模块 ,通过融合丰富语义信息与精确空间位置信息,增强深度网络中小目标特征匹配能力
  • Springboot儿童医院问诊导诊系统aqy75(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  • 免费生成文献综述的网站推荐,助力高效学术写作
  • 408——数据结构(第二章 线性表)
  • 线段树学习笔记 - 练习题(2)
  • Flowable + Spring Boot 自定义审批流实战教程
  • 「iOS」黑魔法——方法交换
  • 词嵌入维度与多头注意力关系解析
  • 51c视觉~3D~合集4
  • 【C语言进阶】柔性数组
  • 11款Scrum看板软件评测:功能、价格、优缺点
  • C++标准库算法实战指南
  • Java基础day16-Vector类-Stack类-Collection子接口Set接口
  • 基础NLP | 02 深度学习基本原理
  • EasyExcel 模板导出数据 + 自定义策略(合并单元格)
  • 亚马逊云科技 EC2 部署 Dify,集成 Amazon Bedrock 构建生成式 AI 应用
  • 货车手机远程启动的扩展功能有哪些
  • QML 模型
  • java如何声明函数
  • Vulnhub Matrix-Breakout-2-Morpheus靶机攻略
  • jd h5st参数纯算
  • 现代C++的一般编程规范
  • Linux内核中动态内存分配函数解析
  • MYSQL中NOT IN和NOT EXISTS
  • 【Guava】1.1.我的报告
  • 宝塔通过docker部署JupyterHub指南【常见错误处理】
  • 从java到vue3:第二天
  • Vue3 面试题及详细答案120道(91-105 )
  • 个人笔记GUI