C++函数中参数的使用及函数的重载

1.函数的默认参数
//如果b有了默认值,其后面的变量都要有默认值

int fun(int a, int b=10, int c=15)	
{
	return a + b + c;
}

//声明和定义只能一个里面写默认值。否则,当声明和定义里的默认参数不一样,会产生歧义。

int fun2(int a, int b = 100);
int fun2(int a, int b )
{
	return a + b;
}

2.//函数的占位参数
fun3里的int就是。占位参数也可以有默认值int =100

void fun3(int a,int)
{
	cout << "函数的占位参数" << endl;
}
fun3(1,2);     //赋给相应类型的值即可

3.//引用作为函数参数
第一个不加const的,里面得是个变量,第二个加上了const,里面赋给的要是常量。

void f1(int &a)
{
	cout << "f1(int &a)被调用了" << endl;
}

int a = 100;
f1(a);				//f1(int &a)被调用了
void f1(const int& a)
{
	cout << "f1(const int &a)被调用了" << endl;
}
f1(10);				//f1(const int &a)被调用了

4.函数的重载
条件:
-参数个数不同-参数类型不同-参数个数不同
函数名称相同
函数的作用域相同

int add(int a, int b)
{
	return a + b;
}
int add(int a, int b,int c)
{
	return a + b+c;
}
float add(float a, float b)
{
	return a + b;
}
cout << add(1, 2)<< endl;       
cout << add(1, 2,3) << endl;
cout << add(1.1, 2.2) << endl;

*函数的返回值类型不同,不能作为函数重载的条件。

float add(float a, float b)
{
	return a + b;
}
int add(float a, float b)
{
	return a + b;
}    //这样会报错,无法重载仅按返回类型区分的函数

5.函数重载中碰到函数默认参数,容易引发歧义

void fun(int a, int b = 10)
{
	cout << "有默认参数的函数被调用了" << endl;
}
void fun(int a)
{
	cout << "无默认参数的函数被调用了" << endl;
}
fun(2022);     //会报错。不知道调用的是哪个
上一篇:C sizeof()


下一篇:Java基础语法之数据类型