-1
    void method( double code = 0, CQueue* = NULL).

我在“.h”文件中定义了这个方法。在 .cpp 文件中,我在 ont 方法中分配代码的值(我希望队列在此处为空)并在另一种方法中为队列分配空值(此处代码必须为 0)具有两个参数的默认类型它在 C++ 中有效吗?有什么替代方法?

4

3 回答 3

6

这是完全有效的。这意味着 thatmethod();等同于method(0, NULL);, 并且method(x);等同于method(x, NULL);and finallymethod(x, y);只是它自己。

要单独传递队列,您需要重载该函数(即拥有另一个同名但参数不同的函数)。像这样的东西:

void method(queue q)
{
    method(some-default-value, q);
}
于 2012-08-02T19:46:11.523 回答
0

这是有效的。

一个问题:您可能希望将第一个参数用作默认值,将第二个参数用作非默认值。
在这种情况下,您需要手动提供第一个参数或使用重载

void method(queue x){
    method(0, x);
}
于 2012-08-02T19:49:29.463 回答
0

在 C++ 中,您可以在一种情况下拥有尽可能多的默认参数:具有默认值的参数必须排在所有其他参数之后。

当您分配值时,它们将按照在函数原型中声明参数的顺序进行分配。

于 2012-08-02T19:50:30.143 回答