C++ 默认参数与引用传递:语法、用法及示例


当你需要在C++中定义函数时,你可以使用默认参数和引用传递来提高代码的灵活性和可读性。

默认参数(Default Parameters)

默认参数允许你在函数定义中为一个或多个参数提供默认值。如果函数调用时没有提供相应的参数,那么将使用默认值。默认参数只能在函数声明中指定一次,在函数定义和调用中都不可以再次指定。

语法:

void functionName(type1 param1 = defaultValue1, type2 param2 = defaultValue2, ...);

示例:

#include <iostream>

// 函数声明时指定默认参数
void greet(std::string name = "World") {
    std::cout << "Hello, " << name << "!" << std::endl;
}

int main() {
    greet();         // 输出: Hello, World!
    greet("Alice");  // 输出: Hello, Alice!
    return 0;
}

引用传递(Reference Parameters)

引用传递允许函数修改调用者提供的变量。与传递值不同,传递引用可以避免复制大型数据结构,从而提高性能。引用参数通常用于需要修改调用者变量的情况。

语法:

void functionName(type& param);

示例:

#include <iostream>

// 通过引用传递交换两个整数的值
void swap(int& a, int& b) {
    int temp = a;
    a = b;
    b = temp;
}

int main() {
    int x = 5, y = 10;
    std::cout << "Before swap: x = " << x << ", y = " << y << std::endl;
    swap(x, y);
    std::cout << "After swap: x = " << x << ", y = " << y << std::endl;
    return 0;
}

在这个例子中,swap函数通过引用参数修改了xy的值,而不是复制它们。

你还可以结合使用默认参数和引用传递来创建更加灵活的函数。例如,你可以将某些参数设置为默认参数,并通过引用传递其他参数来修改它们。

#include <iostream>

// 通过引用传递修改调用者变量的函数,同时具有默认参数
void modifyValues(int& a, int& b, int c = 0) {
    a += c;
    b += c;
}

int main() {
    int x = 5, y = 10;
    std::cout << "Before modification: x = " << x << ", y = " << y << std::endl;
    modifyValues(x, y);
    std::cout << "After modification with default parameter: x = " << x << ", y = " << y << std::endl;
    modifyValues(x, y, 2);
    std::cout << "After modification with provided parameter: x = " << x << ", y = " << y << std::endl;
    return 0;
}

在这个示例中,c参数有一个默认值,而ab通过引用传递,可以在函数内部修改。


原文链接:codingdict.net