C++概述

本文介绍了C++中命名冲突的问题,通过命名空间来管理和避免冲突,包括命名空间的使用、嵌套、展开和指定展开,以及缺省参数的概念。特别强调了`std`命名空间的作用和使用`usingnamespacestd;`的必要性。
摘要由CSDN通过智能技术生成

目录

一、C++关键字(63个)

二、C++几个关键点:

三、C语言缺陷一:命名冲突

四、C++新概念:命名空间(namespace)

五、命名空间的嵌套:

六、展开命名空间:(using namespace std;)

七、指定展开命名空间:

八、缺省参数


一、C++关键字(63个)

二、C++几个关键点:

三、C语言缺陷一:命名冲突

情况一:我们自己写的名字跟库冲突;

情况二:我们互相之间有冲突;

四、C++新概念:命名空间(namespace)

针对C语言缺陷一,C++就提供一种解决方法:命名空间(namespace)

这样的做法类似于给全局变量rand建立一堵围墙,这样printf打印的就是库里面的rand,就不会冲突了(其中namespace是关键字去,name是个自定义的名字)。

此时我们想访问全局变量就可以加个域作用限定符,如下:

命名空间里面不仅可以定义变量,也可以定义函数、结构体等等;(注意:域作用限定符要放在结构体名称前面,不能放在struct前面)

五、命名空间的嵌套:


六、展开命名空间:(using namespace std;)

结构如下图:

这样相当于把该命名空间这堵墙给拆了,这样访问里面的东西时就不用加域作用限定符了,

注意这与展开头文件完全不同;

所以到这里我们应该就明白为什么写C++的时候都要加一句“using namespace std;”,就是把std这个命名空间给展开,std是C++官方库定义的,C++库里面的东西都在这里面,这样就可以使用里面的内容了。

七、指定展开命名空间:

在工程中我们会使用到大量的cout,cin,

若不展开std命名空间,每次使用cout的时候都需要指定,这样很麻烦;

若展开std命名空间,这样里面的内容全部暴露,会有冲突风险;

所以就可以指定展开命名空间,如下:

而平时使用的这些cout,cin,<<(插入流),>>(提取流)等等都是定义在iostream头文件中,但C++里面不需要加.h。

八、缺省参数

多用于函数传参时,如下:

就是直接给形参赋值,如果调用此函数时没有传参,则形参的值为赋的值;

若传参了,则形参的值为传参的值。

//未完待续

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

成工小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值