1.缺省参数
#include<stdio.h>
void func()
{}
void func(int a)
{}
int mian()
{
func();
func(10);
return 0;
}
(1)、这是在C语言中的,这段程序是无法运行的,因为在C语言中没有重载函数这个说法,因为在C语言中,编译器在对程序进行编译后,这两个在库函数上的名字是相同的,都为_func,这也就是我们在运行程序中,如果没有main函数,机器会报错没有_main这个函数。
(2)、 而在C++中,这段程序是可以运行的,编译器对程序进行编译后,在库函数中显示的是截然不同的,会根据参数的类型转换成不同的名称(每个编译器的转换有可能是不同的),这样机器的从传参的情况来判断改调用哪个函数。
(3)、在C++中,重载函数不是所有情况都可以用,如果传参的类型和数量一样,但函数返回类型不一样,是不可以的,因为机器在执行指令的时候不会判断返回类型是什么。
2.缺省参数
#include<iostream>
using namespace std;
int func(int a = 0);
{
return a;
}
int main()
{
int b = func();
int c = func(10);
return 0;
}
(1)、上述C++程序中用到了缺省参数,如代码,当func()括号中没有参数时,此时在函数中,这个参数会自带赋值为0,所以b = 0;而当括号中有参数时,这个参数就会赋值为传过去的值的大小,那么c = 10。
(2)、注意的是,如果一个函数中有多个参数,半缺省参数只能从右往左给,不能间隔着给,因为当你在调用函数时,如果你给参数了,那么这个参数会从左边第一个开始往后给,这时如果给的参数不够用,那么程序就会报错(这只是个建议)。
3.引用
在C++中,存在引用这个用法,首先大家先看代码
#include<iostream>
using namespace std;
int main()
{
int a = 10;
int &b = a;
return 0;
}
(1)、在上述代码中,&是一个引用符号,即给a取了一个别称叫做b,此时,a和b代表的同一个内存空间,改变a或者改变b,该空间的数据都会发生改变。
(2)、但是引用的使用是不可以随便使用的,上述代码中,只有存在a才能使用b去引用,因为引用只能引用一个已经存在的变量。
(3)、引用的优点:先看如下代码。
#include<iostream>
using namespace std;
int func(int& c)
{
return c;
}
int main()
{
int b = 10;
int a = func(b);
return 0;
}
在上述代码中,如果定义func函数中参数没有使用引用,那么将会开辟一个内存空间去让主函数中调用函数的参数给这个新开辟的空间去赋值,然后再进行函数的运行,但是使用了引用,那么不会开辟空间,func函数的参数直接使用的就是传进来的参数,只不过改了一个名称而已。