C++构造函数原型参数

Ton*_*ny 1 c++ constructor arguments prototype class

例如,有一个类foo:

class foo {
public: 
      foo (int = 10);
.....
}
Run Code Online (Sandbox Code Playgroud)

构造函数的原型内部有"int = 10".那么,这意味着什么?Int只是一个整数类型,不是吗?那么,为它赋值是不是非法的呢?我试图在普拉塔的书中和其他地方找到这样一个例子,但我没有找到解释.

cie*_*woj 5

您可以省略函数声明中的参数名称(在定义中也是如此),但您仍然可以指定该参数的默认值.

考虑:

void f(int x = 10) {
    printf("%d\n", x);
}

void g(int = 10);

void g(int x) {
    printf("%d\n", x);
}

int main() {
    f();
    g();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

结果:

10
10
Run Code Online (Sandbox Code Playgroud)

构造函数情况也是如此.