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

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

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

1.命名空间

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

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

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

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

cpp 复制代码
// 方式1:作用域解析运算符 ::
MyNamespace::value = 100;
MyNamespace::print();

// 方式2:using 声明(引入特定成员)
using MyNamespace::print;
print(); // 可直接调用

// 方式3:using 指令(引入整个命名空间 - 慎用!)
using namespace MyNamespace;
value = 200; // 直接访问

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

cpp 复制代码
.h文件
namespace cir {
double PI=3.1415926;
  获取周长的函数
Double Getlenth (Double R)
{
return 2*PI*r
}

Double GetaifiCircle( Double R)
{
return PI*r*r;
}
       }   
cpp 复制代码
.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;
}
相关推荐
心灵宝贝14 分钟前
申威架构ky10安装php-7.2.10.rpm详细步骤(国产麒麟系统64位)
开发语言·php
lly20240616 分钟前
PHP 字符串操作详解
开发语言
像是套了虚弱散2 小时前
DevEco Studio与Web联合开发:打造鸿蒙混合应用的全景指南
开发语言·前端·华为·harmonyos·鸿蒙
旭意2 小时前
C++蓝桥杯之结构体10.15
开发语言·c++
颜颜yan_2 小时前
UU远程——让工作、学习、娱乐跨设备无缝衔接,“远程”更像“身边”
学习·娱乐·远程工作
深思慎考3 小时前
调用百度云语音识别服务——实现c++接口识别语音
c++·语音识别·百度云
麦麦鸡腿堡3 小时前
Java的单例设计模式-饿汉式
java·开发语言·设计模式
简单点了3 小时前
go前后端项目的启动 、打包和部署
开发语言·后端·golang
YJlio3 小时前
Process Monitor 学习笔记(5.24):工具栏参考与高效快捷键指南
笔记·学习·php
爱吃山竹的大肚肚3 小时前
@Valid校验 -(Spring 默认不支持直接校验 List<@Valid Entity>,需用包装类或手动校验。)
java·开发语言