C++重载函数

定义同名的变量,程序会编译出错;定义同名的函数,会带来冲突的问题。C++语言中使用了名字重组的技术,通过函数的参数类型来识别函数,所谓重载函数就是指多个函数具有相同的函数标识名,而参数类型或参数个数不同。函数调用时,编译器以参数的类型以及个数来区分调用哪个函数。

//程序---<使用重载函数>
#include <stdio.h>
#include <iostream>
using namespace std;
int add(int x,int y)//定义第一个重载函数
{
	cout<<"int add"<<endl;//输出信息
	return x+y;//设置函数返回值
}
double add(double x,double y)//定义第二个重载函数
{
	cout<<"double add"<<endl;//输出信息
	return x+y;//设置函数返回值
}
int main()
{
	int ivar = add(3,6);//调用第一个add函数
	float fvar = add(7.9,5.4);//调用第二个add函数
	cout<<ivar<<" "<<fvar<<endl;
	return 0;
}

程序运行效果如下图。


程序中定义了两个相同函数名标识符的函数,函数名都为add,在main函数调用add函数时实参类型不同,语句“int ivar = add(3,6);”的实参类型是整数类型,语句"float fvar = add(7.9,5,4);"的实参类型是双精度,编译器可以区分这两个函数,并且会正确调用相应的函数。

猜你喜欢

转载自blog.csdn.net/apro1066/article/details/81048295