跳至主要內容

函数的参数

AkashiNeko原创C++

1. 缺省参数

在C++中,定义一个函数时,可以为其中的一个或多个参数指定默认值。

int add(int a, int b = 0) {
    return a + b;
}

int main() {
    add(20);   // 20 + 0 = 20
    add(1, 2); // 1 + 2 = 3
    return 0;
}

缺省的参数必须从右向左依次给出,中间不允许间隔。

void func(int a, int b, int c = 0);         // OK
void func(int a = 0, int b = 0, int c = 0); // OK
void func(int a = 0, int b, int c = 0);     // 不合法!

2. 函数重载

C++允许同一个作用域内定义多个同名函数,但它们的参数列表必须不同,这样的多个函数构成函数重载。

#include <cstdio>

void print(int a) {
    printf("int: %d\n", a);
}

void print(double n) {
    printf("double: %lf\n", n);
}

void print(const char* str) {
    printf("const char*: %s\n", str);
}

int main() {
    print(123);     // int: 123
    print(3.14);    // double: 3.140000
    print("hello"); // const char*: hello
}