一,命名空间(namespace)
在C语言中相同的类型的名子,在不同的域中是可以同时存在的,但是在同一域中是不可以同时存在的,尊从当前域到全局域查找。那么怎么找到全局域中?这时需要一个字符——::(域限定操作符)如下图。
那么在同一域中怎么才能同时存在相同类型的名字或者函数呢?
在C++中就用namespace关键字来限制使用。用法:namespace+自己定义的名字。使得自己形成一个私有域。那么相同类型的名字(函数也可以)就可以存在了。
如果需要访问命名空间里面的,就只需要用上域作用限定符(::)。注意:需要在前面加上命名空间的名字,没有就是访问全局的(如图一)。
多个文件使用相同的命名空间会自动合并成一个,比如说.cpp和.h同时使用了同一个命名空间,那么系统会自动的把他们合并在一起。
假设只有一个命名空间,想访问里面的东西,就可以释放这个命名空间,这样就不用加上域作用限定符了。方法using namespace +域名。(如下图)
注意:如果有多个命名空间,释放时需要注意避免名字冲突。
如果有一个命名空间里面某一个变量或者其他什么,经常需要使用,那么就可以特定释放。缓解了写代码时的疲劳感。方法:using 域名 +:: +变量名(或者函数名,结构体)。
二,流插入,流提取
在C++中需要打印数据时就使用cout ,输入就是cin,对应了C语言的printf 和scanf。
但是在使用时还是需要加一个头文件#include<iostream>,但是加了还是会报错,这是因为C++把这个头文件里面的东西封装在了一个std的命名空间中了,所以在使用时需要指定命名空间,或者using namespace std,在或者using std :: cout,cin同理。其中endl是换行跟“\n”是一个意思。
三、缺省参数
概念: 缺省参数是声明或定义函数时为函数的参数指定一个缺省值。在调用该函数时,如果没有指定实参则采用该形参的缺省值,否则使用指定的实参。
1.全缺省
2.半缺省(必须从右往左缺省)
注意: 1. 半缺省参数必须从右往左依次来给出,不能间隔着给 2. 缺省参数不能在函数声明和定义中同时出现(一般声明写,定义不写)。