C++命名空间

命名空间(namespace)的目的:对标识符的名称进行本地化,以避免命名冲突或者名字污染

#include<stdio.h>
#include<stdlib.h>int rand = 0;
int main()
{
//C语言没有办法解决类似这种的命名冲突,而C++提出了namespace来解决printf("%d\n", rand);return 0;
}

命名空间的定义,需要使用namespace关键字,后面跟空间命名名字,然后接一对{}即可,{}中即为命名空间的成员

#include<stdio.h>
#include<stdlib.h>namespace bit
{int rand = 10;int ADD(int x, int y){return x + y;}struct Node{struct Node* next;int val;};
}namespace N1
{int a = 0;int b = 1;int ADD(int x, int y){return x + y;}namespace N2{int c = 2;int d = 3;int SUM(int x, int y){return x - y;}}
}//命名空间可以嵌套
int main()
{printf("%d\n", rand);printf("%d\n",bit::rand);return 0;
}

#include<stdio.h>
#include<stdlib.h>
//同一个工程允许多个相同名称的命名空间,编译器最后会将相同的命名空间合并到一起
//一个工程中的也会合并到一起
//text.h
//namespace bit
//{
//	int rand = 10;
//	struct Node
//	{
//		struct Node* next;
//		int val;
//	};
//}
namespace bit
{int rand = 10;int ADD(int x, int y){return x + y;}
}
namespace bit
{int a = 10;int SUM(int x, int y){return x - y;}
}
int main()
{printf("%d\n", rand);printf("%d\n", bit::rand);printf("%d\n", bit::a);return 0;
}

注意:一个命名空间就定义了一个新的作用域,命名空间中的所有内容都局限于改命名空间中

命名空间的三种使用方式

#include<stdio.h>
//#include<stdlib.h>
namespace bit
{int rand = 10;int a = 20;int ADD(int x, int y){return x + y;}
}
int main1()
{//加命名空间名称及作用域限定符printf("%d\n", bit::rand);return 0;
}using bit::a;
int main2()
{//使用using命令将命名空间中某个成员引入printf("%d\n", a);return 0;
}using namespace bit;
int main()
{//使用using namespace 命名空间名引入printf("%d\n", bit::rand);printf("%d\n", a);
}

C++输入&输出

#include<iostream>
//std是C++标准库的命名空间名,C++将标准库的定义都放到这个命名空间中
using namespace std;
int main()
{//使用cout 和cin 时必须包含iostream头文件	int a;//cin 是标准输入对象(键盘)//cin 可以自动识别变量类型double b;char c;cin >> a;cin >> b >> c;//cout 是标准输出对象(控制台)cout << "hello world" << endl;cout << a << endl;cout << b << '\n' << " " << c << endl;return 0;
}

std 命名空间的使用惯例:
std C++ 标准库的命名空间,如何展开 std 使用更合理呢?
1. 在日常练习中,建议直接 using namespace std 即可,这样就很方便。
2. using namespace std 展开,标准库就全部暴露出来了,如果我们定义跟库重名的类型 /
/ 函数,就存在冲突问题。该问题在日常练习中很少出现,但是项目开发中代码较多、规模
大,就很容易出现。所以建议在项目开发中使用,像 std::cout 这样使用时指定命名空间 +
using std::cout 展开常用的库对象 / 类型等方式。

缺省参数

缺省参数概念:声明或定义函数时为函数的参数指定一个缺省值。在调用该函数时,如果没有指定实 参则采用该形参的缺省值,否则使用指定的实参。

#include<iostream>using namespace std;void Fun(int a = 0)
{cout << a << endl;
}int main()
{Fun();//0Fun(1);//1return 0;
}

缺省参数类型

#include<iostream>
#include"a.h"
using namespace std;
//半缺省类型
//注意
//1. 半缺省参数必须从右往左依次来给出,不能间隔着给void Fun(int a, int b = 20, int c = 30)
{cout << "a = " << a << endl;cout << "b = " << b << endl;cout << "c = " << c << endl;
}int main1()
{Fun(1, 2, 3);//1 2 3//Fun(1, ,3);//erro//Fun(, ,3);//erro//Fun();//erroFun(1, 2);//1 2 30Fun(1);//1 20 30return 0;
}//2. 缺省参数不能在函数声明和定义中同时出现
void Fun1(int a = 10 , int b = 20, int c = 30)
{cout << "a = " << a << endl;cout << "b = " << b << endl;cout << "c = " << c << endl;
}
//3. 缺省值必须是常量或者全局变量
//4. C语言不支持(编译器不支持)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/352475.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【日常记录】【vue】vite-plugin-inspect 插件的使用

文章目录 1、vite-plugin-inspect2、安装3、使用4、链接 1、vite-plugin-inspect vite-plugin-inspect 可以让开发者在浏览器端就可以看到vue文件编译后的代码、vue文件的相互依赖关系 2、安装 npm i -D vite-plugin-inspect// vite.config.ts import Inspect from vite-plugi…

6.17作业

升级优化自己应用程序的登录界面。 要求&#xff1a; 1. qss实现 2. 需要有图层的叠加 &#xff08;QFrame&#xff09; 3. 设置纯净窗口后&#xff0c;有关闭等窗口功能。 4. 如果账号密码正确&#xff0c;则实现登录界面关闭&#xff0c;另一个应用界面显示。 //发送端头文件…

AI + 3D:用单个图像和文本提示创建可交互的3D世界

你是否曾经梦想过只需一张照片和一些简单的文字描述,就能立即进入一个生动的3D虚拟世界?今天,我们将介绍一个革命性的技术,它就像是一台神奇的3D场景制造机,能够根据你的想象快速构建出令人惊叹的虚拟空间。 一、技术概览 这项技术不仅仅是一个简单的图像到3D的转换工具…

计算机组成原理(四)Cache存储器

文章目录 Cache存储器的基本原理cache命中率、平均访问时间、效率地址映射全相联映射直接映射组相联映射 查找算法cache 存储器替换策略cache 存储器-写操作策略习题 Cache存储器的基本原理 Cache是一种高速缓冲寄存器&#xff0c;是为了解决CPU和主存之间速度不匹配而采用的一…

Stable Diffusion基础:ControlNet之细节替换

本文继续给大家分享 Stable Diffusion 的基础能力&#xff1a;ControlNet之细节替换&#xff0c;故事的主角是 Tile。 Tile 的原意是瓦片、瓷砖。作为 ControlNet&#xff0c;它会对参考图进行分块&#xff0c;并识别出区块内的对象。如果提示词和区块内的对象匹配&#xff0c…

高考志愿填报:选择好专业还是好学校?

人不走空 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌赋&#xff1a;斯是陋室&#xff0c;惟吾德馨 高考志愿填报&#xff1a;选择好专业还是好学校&#xff1f; 每年高考结束后&#xff0c;考生和家长面临的一个…

【深度学习】AI换脸,EasyPhoto: Your Personal AI Photo Generator【一】

论文&#xff1a;https://arxiv.org/abs/2310.04672 文章目录 摘要IntroductionTraining Process3 推理过程3.1 面部预处理3.3 第二扩散阶段3.4 多用户ID 4 任意ID5 实验6 结论 下篇文章进行实战。 摘要 稳定扩散Web UI&#xff08;Stable Diffusion Web UI&#xff0c;简称…

LabVIEW进行图像拼接的实现方法与优化

在工业检测和科研应用中&#xff0c;对于大尺寸物体的拍摄需要通过多次拍摄后进行图像拼接。LabVIEW 作为强大的图形化编程工具&#xff0c;能够实现图像拼接处理。本文将详细介绍LabVIEW进行图像拼接的实现方法、注意事项和提高效率的策略。 图像拼接的实现方法 1. 图像采集…

30.保存游戏配置到文件

上一个内容&#xff1a;29.添加录入注入信息界面 以 29.添加录入注入信息界面 它的代码为基础进行修改 效果图&#xff1a; 首先在我们辅助程序所在目录下创建一个ini文件 文件内容 然后首先编写一个获取辅助程序路径的代码 TCHAR FileModule[0x100]{};GetModuleFileName(NUL…

ByteTrack

1. 论文中伪代码表示的流程图 2. 简要版 此图源自&#xff1a; ByteTrack多目标跟踪原理&#xff0c;白老师人工智能学堂 3. 详细版 根据ByteTrack-CPP-ncnn代码的数据流画的较为详细的流程图&#xff1a; 4. ByteTrack-CPP-ncnn的UML类图 Reference ByteTrack多目标跟踪原…

事务性邮件与营销邮件有什么区别

在数字化时代&#xff0c;电子邮件已成为商务沟通不可或缺的工具。然而&#xff0c;并非所有的邮件都旨在销售产品或服务。事务性邮件和营销邮件&#xff0c;虽然都通过电子邮件这一渠道传播&#xff0c;但它们的目的、风格和结构却大相径庭。U-Mail将深入探讨这两种邮件的区别…

cve_2014_3120-Elasticsearch-rce-vulfocus靶场

1.背景 来源&#xff1a;ElasticSearch&#xff08;CVE-2014-3120&#xff09;命令执行漏洞复现_mvel 漏洞-CSDN博客 参考&#xff1a;https://www.cnblogs.com/huangxiaosan/p/14398307.html 老版本ElasticSearch支持传入动态脚本&#xff08;MVEL&#xff09;来执行一些复…

React入门教程:构建你的第一个React应用

在当今快速发展的Web开发领域&#xff0c;前端技术日新月异&#xff0c;而React作为一款强大的JavaScript库&#xff0c;已经成为众多开发者的首选。React以其组件化、高效的性能和灵活的数据处理机制闻名于世&#xff0c;被广泛用于构建动态且复杂的用户界面。在本教程中&…

新人最全Charles安装配置来了

1. windows proxy 这个按钮根据需要&#xff0c;进行打开或者关闭。该按钮勾选状态下则表示可以抓取到电脑端的请求 2. Proxy-setiing 检查enable transparent HTTP 按钮是否勾选 这个按钮必须勾选 3. SSL proxy setting 80&#xff1a;HTTP协议的端口号 8080&#xff1…

SFNC —— 标准特征命名约定(一)

系列文章目录 SFNC —— 标准特征命名约定&#xff08;一&#xff09; 文章目录 系列文章目录1、介绍1.1 约定&#xff08;Conventions&#xff09;功能名称和接口&#xff08;Feature Name and Interface&#xff09;功能类别&#xff08;Feature Category&#xff09;功能级别…

NAND闪存市场彻底复苏

在全球内存市场逐渐走出阴霾、迎来复苏曙光之际&#xff0c;日本存储巨头铠侠&#xff08;Kioxia&#xff09;凭借敏锐的市场洞察力和及时的战略调整&#xff0c;成功实现了从生产紧缩到全面复苏的华丽转身。这一转变不仅彰显了企业在逆境中的生存智慧&#xff0c;也为全球半导…

SpringBootWeb 篇-入门了解 Apache POI 使用方法

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 Apache POI 概述 2.0 使用 Apache POI 读写 Excel 文件 2.1 写入 Excel 文件 2.2 写入 Excel 文件代码演示 2.3 读取 Excel 文件 2.4 读取 Excel 文件代码演示 1.…

[蓝桥杯真题]买二赠一

蓝桥杯真题;买二赠一&#xff0c;要求赠的一价格不能超过买的两者之间最小价格的二分之一 看到这个题的时候我信心满满的一顿操作猛如虎&#xff0c;全部写出来的时候内心想着&#xff0c;稳了&#xff01;这次绝对稳了&#xff01;然而。。。答案错误。。。 我只能去看了一下…

苹果的后来者居上策略:靠隐私保护打脸微软

01.苹果与微软相比更注重用户隐私 我一直是Windows的忠实用户&#xff0c;但微软疯狂地将人工智能融入一切&#xff0c;让我开始觉得应该咬咬牙换成Mac。 自小我几乎只用Windows电脑&#xff0c;所以我对MacOS一直不太适应。虽然Windows 11有其缺点&#xff0c;但总的来说&am…

【系统架构设计师】一、计算机系统基础知识(指令系统|存储系统|输入输出技术|总线结构)

目录 一、指令系统 1.1 计算机指令 1.2 指令寻址方式 1.3 CISC 与 RISC 1.4 指令流水线 二、存储系统 2.1 分级存储体系 2.2 地址映射 2.3 替换算法 2.4 磁盘 2.4.1 磁盘结构和参数 2.4.2 磁盘调度算法 三、输入输出技术 四、总线结构 五、考试真题练习 一、指令…