【C++】缺省函数

在 C++ 中,缺省函数(Default Function)是指在函数声明中为函数的参数提供默认值的函数。当调用这个函数时,如果没有提供相应参数的值,那么将使用该参数的默认值。

下面是一个使用缺省函数的简单示例:

void printMessage(std::string message = "Hello, World!") {
    std::cout << message << std::endl;
}

int main() {
    printMessage();     // 使用默认参数值
    printMessage("Hi!");  // 提供自定义参数值
    return 0;
}

在上面的示例中,我们定义了一个名为 printMessage 的函数,并为其参数 message 提供了一个默认值 "Hello, World!"。当我们在 main 函数中调用 printMessage 函数时,可以选择传递参数值或者不传递。如果我们不传递任何参数值,那么将使用参数的默认值。

缺省函数的优点在于它们提供了更灵活的函数调用选项。使用缺省函数可以简化函数调用,尤其是对于有多个参数的函数来说。它还能够提供一个合适的默认行为,当不提供特定参数值时,函数可以以某种约定的方式运行。

在定义缺省函数时,需要遵循以下规则:

  1. 缺省值只能在函数声明或定义中通过赋值方式指定一次。一般将函数的默认参数值定义在函数原型中,而不是在函数定义中。
  2. 缺省参数应该从右至左依次提供,默认值只允许出现在最右边的连续参数中。也就是说,函数中的参数默认值只能定义在最右侧的参数,紧跟在没有默认值的参数之后。

以下是另一个示例,演示了多个参数和它们的默认值:

void printNumbers(int a, int b = 0, int c = 0) {
    std::cout << "Numbers: " << a << ", " << b << ", " << c << std::endl;
}

int main() {
    printNumbers(1);           // a=1, b=0, c=0
    printNumbers(2, 3);        // a=2, b=3, c=0
    printNumbers(4, 5, 6);     // a=4, b=5, c=6
    return 0;
}

在上面的示例中,我们定义了一个名为 printNumbers 的函数,它有三个参数,并为其中两个参数提供了默认值。在 main 函数中,我们可以选择传递任意数量的参数,缺省的参数将使用其默认值。

请注意,在函数声明或者函数定义的使用中,缺省参数只需在函数原型或者定义的其中之一中提供即可。而且,一旦某个函数的声明或者定义中提供了默认值,那么其他使用的声明或定义必须保持一致。

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