📜  C ++ |函数重载和默认参数问题4(1)

📅  最后修改于: 2023-12-03 15:13:45.009000             🧑  作者: Mango

C ++ 函数重载和默认参数问题4

函数重载和默认参数是 C ++ 中的重要特性。函数重载允许我们定义多个函数具有相同的名称但不同的参数列表。默认参数允许我们定义函数的参数具有默认的值,如果调用函数时没有提供参数,则使用默认参数。

函数重载

函数重载的概念是定义多个具有相同名称但参数列表不同的函数。例如:

int add(int num1, int num2);
float add(float num1, float num2);

这里我们定义了两个名为“add”的函数,它们具有不同的参数类型。当我们调用“add”函数时,编译器会根据参数类型选择正确的函数。

函数重载的规则如下:

  • 函数名称相同
  • 参数列表必须不同,包括参数类型、参数顺序和参数个数
默认参数

默认参数是在定义函数时为参数指定默认值,如果调用函数时没有提供参数,则使用默认参数。例如:

int add(int num1, int num2 = 3);

这里我们为“num2”指定了默认值“3”。调用“add”函数时,如果只提供一个参数,则“num2”将使用默认值。

默认参数的规则如下:

  • 默认参数必须在参数列表中从右向左定义
  • 一旦定义了一个默认参数,后续参数必须都有默认值,默认参数是可选的
示例

让我们看一个示例,演示如何定义和使用函数重载和默认参数。

#include <iostream>

using namespace std;

int add(int num1, int num2);
float add(float num1, float num2);
int add(int num1, int num2, int num3 = 0);

int main() {
    int result1 = add(1, 2);
    float result2 = add(1.5, 2.5);
    int result3 = add(1, 2, 3);

    cout << "Result 1: " << result1 << endl;
    cout << "Result 2: " << result2 << endl;
    cout << "Result 3: " << result3 << endl;

    return 0;
}

int add(int num1, int num2) {
    return num1 + num2;
}

float add(float num1, float num2) {
    return num1 + num2;
}

int add(int num1, int num2, int num3) {
    return num1 + num2 + num3;
}

在上面的示例中,我们定义了三个名为“add”的函数。第一个接受两个整数作为参数,并返回它们的总和。第二个接受两个浮点数作为参数,并返回它们的总和。第三个接受三个整数作为参数,并返回它们的总和。第三个函数定义中,“num3”的默认值为“0”。

在“main”函数中,我们使用这些函数来计算两个整数、两个浮点数和三个整数的总和。请注意,在调用第三个函数时,我们只提供了前两个参数,因为第三个参数有一个默认值。

输出:

Result 1: 3
Result 2: 4
Result 3: 6
结论

函数重载和默认参数是 C ++ 中强大和有用的特性。它们允许我们编写更灵活的代码,并使我们的代码更易于阅读和理解。对于需要多个版本的相同函数的情况(例如,一个函数用于加法,另一个用于字符串连接),函数重载是必不可少的。对于某些参数在大多数情况下都有相同值的函数,使用默认参数可以简化代码,并使函数的调用更具可读性。