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

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

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

在C ++中,函数重载是指在同一个作用域内定义多个函数,函数名称相同但参数列表不同。这些不同版本的函数可以接收不同的参数类型和数量,从而使你能够使用相同名称的函数来执行不同的任务。

默认参数是函数定义中一种特殊的参数类型,当调用函数时没有为该参数提供值时,使用默认值来替代。默认参数也可以简化代码和提高代码的可读性。

函数重载的例子

下面是一个函数重载的例子。我们定义了两个名称相同的函数,但参数个数和类型不同。第一个函数接收一个整数,第二个函数接收两个浮点数。

#include <iostream>
using namespace std;

void print(int num){
    cout << num << endl;
}

void print(float num1, float num2){
    cout << num1 << ", " << num2 << endl;
}

int main(){
    print(10);         // 调用 print(int) 函数
    print(1.23, 4.56); // 调用 print(float, float) 函数

    return 0;
}

上述代码输出结果为:

10
1.23, 4.56
默认参数的例子

下面是一个使用默认参数的函数。在函数定义中定义了一个参数的默认值1,如果在调用函数时没有为该参数提供值,则使用默认值1。

#include <iostream>
using namespace std;

int getArea(int length, int width = 1){
    return length * width;
}

int main(){
    cout << "area = " << getArea(5) << endl;      // 输出:area = 5
    cout << "area = " << getArea(7, 3) << endl;   // 输出:area = 21

    return 0;
}

上述代码输出结果为:

area = 5
area = 21
函数重载和默认参数的例子

下面是同时使用函数重载和默认参数的例子。我们定义了两个名称相同的函数,但一个函数使用默认参数,另一个函数使用两个不同的参数。

#include <iostream>
using namespace std;

int getArea(int length){
    return length * 1;
}

int getArea(int length, int width){
    return length * width;
}

int main(){
    cout << "area = " << getArea(5) << endl;      // 调用 getArea(int) 函数和默认参数
    cout << "area = " << getArea(7, 3) << endl;   // 调用 getArea(int, int) 函数

    return 0;
}

上述代码输出结果为:

area = 5
area = 21

在上述例子中,当调用getArea(5)时,调用的是getArea(int length)函数,并使用默认参数1来计算面积。当调用getArea(7, 3)时,调用的是getArea(int length, int width)函数,并使用传递的参数计算面积。 可以看出,通过函数重载和默认参数的结合使用,我们可以更方便地定义灵活的函数,提高代码的可维护性和可读性。

总之,函数重载和默认参数是两个非常有用的特性,可以帮助我们更灵活地定义需要执行不同任务的函数。