C++中关于“名字空间”、“缺省参数”、“函数重载”相关知识

OOP:(object oriented programming)面向对象语言;
OO语言(面向对象语言)三大特性:继承,封装,多态;
::预操作运算符:std::cout,在std函数库下直接实行cout操作;

一、名字空间
namespace:可以进行嵌套,嵌套里面和外面内容不同;
1、名字空间可以解决函数、全局变量名重复的问题,包在不同名字空间里的重复名字函数实际是两个完全无关函数;
2、名字空间允许嵌套,嵌套内部和外部没有任何关系;
3、名字空间(不是重名函数)允许重名,重名的名字空间内容会被合并进其中一个空间;
4、一个命名空间就定义了一个新的作用域,命名空间的内容仅仅局限于此个空间。它解决了C语言中只能用文件划分作用域的缺陷;
5、使用using关键字,可以引用一个名字空间,使得这个名字空间内的所有内容对自己可;
6、如果两个名字空间里分别有相同的两个函数,那么即使我同时用using引用了两个名字空间,那么也不会报错,除非我使用了这个函数(因为使用函数会产生歧义,也就是不知道该调那个函数)。

using namespace std;->实现std::cout<<…;

二、缺省参数
函数的参数列表允许存在被赋值的参数,这些参数具备以下特点:
1、传入自己的值时,使用自己的值,否则使用函数中指定的值;
void func(int a = 10,int b = 20,int c = 30){
cout << a << endl;
cout << b << endl;
cout << c << endl;
}
使用函数之前,参数必定得有自己的指定值,否则不能调用时不给参数;
2、若函数参数没有自己的指定值,那么函数中缺省参数必须在函数参数末尾;
3、缺省参数不能在函数声明和定义中同时出现,在声明和定义中取其一出现即可;
声明可以有很多个,但是定义只有一个;
4、缺省值必须是常量或者全局变量。

三、函数重载
1、C++允许在同一作用域中声明几个功能类似的同名函数,这些同名函数的形参列表(参数个数或类型或顺序)必须不同,常用来处理实现功能类似数据类型不同的问题;
2、函数名相同时,参数相同就不能实现函数重载,不会考虑返回值是否不同;
3、extern "C"表示某些函数按照C风格进行函数编译;也可以用大括号将部分代码括起来进行C风格编译;
4、C++中函数重载底层是怎么处理的?C++在进行编译时会用@加上域名和函数名。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值