C++语言是基于C语言基础之上的一门语言,那么我们就要先从对C++的语法上进行详细了解:
我将从以下几个部分进行介绍:
目录
3.using namespace进行全部展开(即放开命名空间)
1.C++命名空间
在C语言学习中大部分的变量,函数,结构体等放在全局中进行使用,难免会出现名字冲突的问题,比如当定义一个全局变量rand时,编译器无法确定在主函数中调取的rand是全局变量还是库函数中的rand函数。所以在C++中优化了这一点,使用到了一个关键字namespace,即命名空间。
1.定义
可以用在定义变量,函数,类型等例如结构体
namespace s {
int a=1;
int b=2;
int Add(int a, int b) {
return a + b;
}
struct Node {
struct Node* ptr;
int data;
};
}
有以下注意事项:
1.主函数中一般默认为在全局中找变量,如果要在命名空间中找时就一定要加域。
2.在同一个项目中可以存在多个名称相同的命名空间,他们最后会自动合并到一个命名空间中去。
3.一个命名空间就相当于定义了一个新的作用域。
2.用法
1.加命名空间名称以及作用限定符
2.using进行部分展开
可以将命名空间中某个成员引入,就不要作用域限定符
3.using namespace进行全部展开(即放开命名空间)
使得引入该变量时直接就是从命名空间里找(但是完全放开命名空间有危险,因为如果存在两个命名空间,里面存在相同名字的变量就不知道找的是哪个。
using s::b;
using namespace s;
int main() {
printf("%d\n", s::a);
printf("%d\n", b);
printf("%d %d", a, b);
return 0;
}
2.缺省参数
1.定义
就是在定义或声明一个函数时为函数参数提前指定一个值,即缺省值,在调用函数时如没有传参,将使用缺省值。
void Print(int num = 4) {
cout << num << endl;
}
int main() {
Print();//没有进行传参 num=4
Print(6);//使用指定实参 num=6
return 0;
}
2.分类
1.全缺省参数
顾名思义就是每一个参数都指定了一个缺省值
2.半缺省参数
只有一部分参数给了缺省值
半缺省参数必须从右往左给不能间隔给
缺省参数不能在函数定义和声明中同时出现(就是为了防止两者给的缺省值不同)
缺省值必须是常量或者全局变量
3.函数重载
C++允许在同一个作用域中声明几个功能类似的同名函数,他们可以是参数个数不同,类型不同或类型顺序不同,C++可以帮助自动匹配类型(就是函数名相同,参数不同)
int Add(int s1, int s2) {//参数类型不同
return s1 + s2;
}
double Add(double s1, double s2) {
return s1 + s2;
}
——————————————————————————————————————————
将会继续更新,欢迎大佬批评指正