C++入门(命名空间,缺省参数,函数重载)

C++语言是基于C语言基础之上的一门语言,那么我们就要先从对C++的语法上进行详细了解:

我将从以下几个部分进行介绍:

目录

1.C++命名空间

1.定义

2.用法

1.加命名空间名称以及作用限定符

2.using进行部分展开

3.using namespace进行全部展开(即放开命名空间)

2.缺省参数

1.定义

2.分类

   1.全缺省参数

   2.半缺省参数

3.函数重载


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;
}

 ——————————————————————————————————————————

将会继续更新,欢迎大佬批评指正

你可能感兴趣的:(c++,开发语言)