c++重载函数与默认函数

默认参数

//在c++中,函数的形参是可以有默认参数的,在函数调用时,可以不给其赋值
//使用默认的参数,所以带默认参数的形参一般写在右边
//一般形式:类型名  函数名(参数1,参数2.。。。参数n=num){函数体}

//注意:1.如果某位置由默认参数,则其后都为默认参数   
//      2.如果在函数声明时赋值默认参数,则定义时不可赋参(谁先出现谁默认参)
int volume(int , int , int = 4);
int main()
{
	int a, b,c;
	cout << "请输入长和宽" << endl;
	cin >> a >> b;
	cout << "已经默认高为4"<<endl;
	cout << "体积为:" << volume(a, b) << endl;
	return 0;

}
int volume(int a,int b,int c)
{
	return a * b * c;
}

占位参数

//c++中函数占位参数:
void fun(int a, int)//int为占位参数
{
	cout << "niaho" << endl;
}
int main()
{
	fun(10, 10);//第二个10目前用不到,但是调用时不可不写第二个整型
}

重载函数 

//c++函数重载:函数名可以相同,提高利用率
//满足条件:同一作用域,函数名相同,函数参数 类型 个数 顺序 至少一个不同
//返回值类型不同不可以作为重载条件


//类型不同
int max(int a, int b)
{
	return a > b ? a : b;
}
float max(float a, float b)
{
	return a > b ? a : b;
}
int main()
{
	int a, b;
	float  c, d;
	cout << "输入两整数" << endl;
	cin >> a >> b;
	cout << "输入两小数" << endl;
	cin >> c>> d;
	cout << "整数max:" << max(a, b)<<endl;
	cout << "小数max:" << max(c, d)<<endl;
	return 0;
}


//参数不同
float max(float a, float b)
{
	return a > b ? a : b;
}
 float max(float a,float b,float c)
 {
return (a>b?a:b)>c?(a>b?a:b):c;
 }
int main()
{
	float a, b;
	float  c, d;
	cout << "输入两小数" << endl;
	cin >> a >> b;
	cout << "输入两小数" << endl;
	cin >> c>> d;
	cout << "整数max:" << max(a, b,c)<<endl;
	cout << "小数max:" << max(c, d)<<endl;
	return 0;
}


//顺序不同
void max(int& a, float& b)
{
	cout << "max1 is:" << (a > b ? a : b) << endl;
}

void max(float& a, int & b)
{
	cout << "max2 is:" << (a > b ? a : b) << endl;
}
int main()
{
	float a;
	int b;
	cout << "输入小数,整数" << endl;
	cin >> a >> b;
	max(a, b);
	max(b, a);
}

注意事项

//注意事项
//1.引用做重载条件
void fun(int& a)
{
	cout << "调用fun(int& a)" << endl;
}
void fun(const int& a)
{
	cout << "调用fun(const int& a)" << endl;
}
int main()
{
	int a = 10;
	fun(a);//a本质上为变量,调用不带const的
	fun(1);//1为常量,所以调用const
}



//2.函数重载碰到默认参数
void fun(int a, int b = 10)
{
	cout << "haha" << endl;
}
void fun(int a)
{
	cout << "yes" << endl;
}
int main()
{
	int a = 10;
//	fun(a);//因为默认参数存在,函数调用冲突
	fun(a, 29);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值