c++基础

命名空间

namespace的价值

namespace的定义

命名空间的使用

缺省参数

全缺省参数

半缺省参数

函数重载

一、命名空间

1.namespace的价值

变量和函数和类的名称存在于全局作用域中,会导致许多冲突。使用命名空间的目的是对初始化的名称进行本地化,避免命名冲突。
因为c++中这个rand是函数所以不能被赋值,为了解决这个问题,c++推出了命名空间这个概念

2.namespace的定义

定义命名空间,需要使用namespace这个关键字,后面跟空间名字,而后使用{},在括号中可以有函数,变量和类名。

namespace的本质是定义一个域,这个域跟全局域各自独立,不同的域可以定义同名的变量。
下图为命名空间内变量与全局变量同时存在。

由下图可知定义不同的命名可以存在相同的变量及函数和类,是不会报错的

3.命名空间的使用

由下图可知需要通过::符号叫域作用符,前面是命名空间,后面为需要查找的值。

二、缺省参数

1.声明或定义函数时为函数的参数制定一个缺省值。在调用该函数时,如果没有指定实参则采用该形参的缺省值,否则使用指定的实参,缺省值分为全缺省与半缺省。

全缺省参数
所有参数都有默认值。由下图可知,如果没有对其进行传的参数,默认调用了其本来的参数。以调用过来的参数为首选,没调过来的用其默认生成的。

半缺省参数部分参数给缺省值

由下图可知,当改为半缺省时我们需要对其没给的参数进行传参,否则就会报错。无法调用该函数。

由下图可知,缺省值时不能跳跃给默认值的

缺省值必须从左到右的顺序

三、函数重载

c++中支持在同一作用域中出现同名函数,但是要求这些同名函数的形参不同,可以是参数个数不同或者类型不同。这样构成函数重载

参数类型不同

参数个数不同

参数类型顺序不同

返回值不同:单单一个返回值不同是不能构成重载的

构成重载却产生歧义。
当我们调用f1不传参时,编译器也不知道该调用哪个函数,所以产生歧义

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值