C++函数重载

        具有相同名称但参数不同的两个或多个函数称为重载函数。在本文中,您将通过示例了解函数重载。

函数是指将代码分组以执行特定任务的代码片段。

        在C ++编程中,如果传递的参数的个数或类型不同,则两个函数可以具有相同的名称。这些具有不同参数个数或类型(或两者兼有)参数的函数称为重载函数。例如

int test() { }
int test(int a) { }
float test(double a) { }
int test(int a, double b) { }

        这里,所有4个函数都是重载函数,因为传递给这些函数的参数不同。注意,这4个函数的返回类型并不相同。重载函数可能有也可能没有不同的返回类型,但是应该有不同的参数。

// 错误代码
int test(int a) { }
double test(int b){ }

        即使返回类型不同,但是传递给这两个函数的参数个数和数据类型都相同。因此,编译器将抛出错误,如下图所示。

C++函数重载_第1张图片

示例1:函数重载 

# include 

void display(int var) {
	std::cout << "整数:" << var << std::endl;
}

void display(float var) {
	std::cout << "浮点数:" << var << std::endl;
}

void display(int var1, float var2) {
	std::cout << "整数:" << var1;
	std::cout << "和浮点数:" << var2;
}


int main() {
	int a = 1;
	float b = 1.1;
	display(a);
	display(b);
	display(a, b);

	return 0;
}

 上述代码运行结果:

整数:1
浮点数:1.1
整数:1和浮点数:1.1

        在这里,display()函数使用不同类型或数量的参数调用了三次。所有这些函数的返回类型都是相同的,但这不是必需的。

示例2:函数重载

# include 
using namespace std;

int absolute(int var) {
	if (var < 0)
		var = -var;
	return var;
}

float absolute(float var) {
	if (var < 0.0)
		var = -var;
	return var;
}

int main() {
	int a = -1;
	float b = 1.1;
	cout << "数字 " << a << " 的绝对值= " << absolute(a) << endl;
	cout << "数字 " << b << " 的绝对值= " << absolute(b);
	return 0;
}

 上述代码运行结果为:

数字 -1 的绝对值= 1
数字 1.1 的绝对值= 1.1

        在上面的示例中,两个 absolute()函数被重载。这两个函数都采用单个参数。但是,一个函数将integer作为参数,而另一个将float作为参数。
        以int作为参数调用absolute()函数时,调用此函数:
示例

int absolute(int var) {
     if (var < 0)
         var = -var;
    return var;
}

以float作为参数调用absolute()函数时,将调用此函数:

示例

float absolute(float var){
    if (var < 0.0)
        var = -var;
    return var;
}

你可能感兴趣的:(C++,c++,开发语言)