默认参数的问题 < Stanley B. Lippman >中的C++入门书,* Joe'e LaJoeI/P>

默认参数的问题 < Stanley B. Lippman >中的C++入门书,* Joe'e LaJoeI/P>,c++,default-arguments,C++,Default Arguments,在类别构造函数第14.2章中规定: 我们是否也应该提供指定期初余额但不指定客户名称的支持? 碰巧的是,类规范明确不允许这样做。我们的两个参数 具有默认第二个参数的构造函数为接受 用户可以设置的类帐户数据成员的初始值: 以下是向构造函数传递一个或两个参数的合法帐户类对象定义: 当2参数构造函数没有用单参数声明时,它如何调用该构造函数 Account *pact = new Account( "Michael Lieberman", 5000 ); 上面这一行如何使用默认参数调用构

在类别构造函数第14.2章中规定:

我们是否也应该提供指定期初余额但不指定客户名称的支持? 碰巧的是,类规范明确不允许这样做。我们的两个参数 具有默认第二个参数的构造函数为接受 用户可以设置的类帐户数据成员的初始值:

以下是向构造函数传递一个或两个参数的合法帐户类对象定义:

当2参数构造函数没有用单参数声明时,它如何调用该构造函数

        Account *pact = new Account( "Michael Lieberman", 5000 );
上面这一行如何使用默认参数调用构造函数

        if ( strcmp( acct.name(), pact->name() ))
             // ...
}
这本书似乎非常不清楚,代码不完整。
需要对构造函数进行很好的解释。请澄清。

这不是关于构造函数,而是关于默认参数

void f(int x, int y = 5)
{
   //blah
}
当您调用它提供较少的参数时,它使用默认参数的值。 例如

如果其中一个函数参数具有默认值,则所有后续参数也必须具有默认值

void f(int x, int y = 3, int z = 4)
{
    //blah
}

f(0);    // f(0, 3, 4)
f(1, 2); //f(1, 2, 4)
f(10, 30, 20); //explicitly specifying arguments

这不是关于构造函数的,这是关于默认参数的

void f(int x, int y = 5)
{
   //blah
}
当您调用它提供较少的参数时,它使用默认参数的值。 例如

如果其中一个函数参数具有默认值,则所有后续参数也必须具有默认值

void f(int x, int y = 3, int z = 4)
{
    //blah
}

f(0);    // f(0, 3, 4)
f(1, 2); //f(1, 2, 4)
f(10, 30, 20); //explicitly specifying arguments

void f(int x, int y = 3, int z = 4)
{
    //blah
}

f(0);    // f(0, 3, 4)
f(1, 2); //f(1, 2, 4)
f(10, 30, 20); //explicitly specifying arguments