0
点赞
收藏
分享

微信扫一扫

函数重载 c++

Android开发指南 2022-04-17 阅读 203
c++

文章目录


前言

重载函数:可以共用一个函数名,提高利用率
实现函数重载的条件:
作用域相同
函数名称相同
函数的参数类型,数量,顺序不同

!!!!函数的返回值不可以做函数重载的条件
函数的定义:
函数将有效的输入值变换为唯一的输出值,同一输入总是对应同一输出。
如果返回值的类型 能用来 重载,那么对于相同的输入值,程序怎么决定到底应该调用哪一个重载的方法? 况且即使有方法判定执行哪一个重载方法,那么必然 相同的输入值 可能 有 不同的 输出值, 这违反了 数学概念中 对 函数的定义 。

1.基本语法

代码如下(示例):

#include<bits/stdc++.h>
using namespace std;
void fun()
{
	cout<<"fun()的调用"<<endl;
}
void fun(int a)
{
	cout<<"fun(int a)的调用"<<endl;
}
void fun(double a)
{
	cout<<"fun(double a)的调用"<<endl;
}
void fun(int a,int b)
{
	cout<<"fun(int a,int b)的调用"<<endl;
}
void fun(int a,double b)
{
	cout<<"fun(int a,double b)的调用"<<endl;
}
void fun(double a,int b)
{
	cout<<"fun(double a,int b)的调用"<<endl;
}
int main()
{
	fun(10,3.14);//数据和那个重载函数的定义参数的类型一样,就会调用哪个 
	return 0;
 } 

在这里插入图片描述

2.注意事项

引用作为重载条件
重载函数碰到默认参数(默认参数 :在函数定义时给参数赋值eg:void fun(int a=10))
代码如下(示例):

#include<bits/stdc++.h>
using namespace std;
//引用作为重载条件 
void fun(int &a)
{
	cout<<"fun(int &a)的调用"<<endl;
}
void fun(const int &a)//const表示只能读不能修改 
{
	cout<<"fun(coust int &a)的调用"<<endl;
}
//碰到默认参数 
void fun1(int a,int b=10)
{
	cout<<"fun(int a,int b=10)的调用"<<endl;
}
void fun1(int a)
{
	cout<<"fun(int a)的调用"<<endl;
}

int main()
{	int a=10;  
	fun(a);//数据和那个重载函数的定义参数的类型一样,就会调用哪个 
	//fun1(10);        //出现二义性,两个都符合条件,不知道怎么选择 
	return 0;
 } 

在这里插入图片描述


举报

相关推荐

0 条评论