void method( double code = 0, CQueue* = NULL).
我在“.h”文件中定义了这个方法。在 .cpp 文件中,我在 ont 方法中分配代码的值(我希望队列在此处为空)并在另一种方法中为队列分配空值(此处代码必须为 0)具有两个参数的默认类型它在 C++ 中有效吗?有什么替代方法?
void method( double code = 0, CQueue* = NULL).
我在“.h”文件中定义了这个方法。在 .cpp 文件中,我在 ont 方法中分配代码的值(我希望队列在此处为空)并在另一种方法中为队列分配空值(此处代码必须为 0)具有两个参数的默认类型它在 C++ 中有效吗?有什么替代方法?
这是完全有效的。这意味着 thatmethod();
等同于method(0, NULL);
, 并且method(x);
等同于method(x, NULL);
and finallymethod(x, y);
只是它自己。
要单独传递队列,您需要重载该函数(即拥有另一个同名但参数不同的函数)。像这样的东西:
void method(queue q)
{
method(some-default-value, q);
}
这是有效的。
一个问题:您可能希望将第一个参数用作默认值,将第二个参数用作非默认值。
在这种情况下,您需要手动提供第一个参数或使用重载
void method(queue x){
method(0, x);
}
在 C++ 中,您可以在一种情况下拥有尽可能多的默认参数:具有默认值的参数必须排在所有其他参数之后。
当您分配值时,它们将按照在函数原型中声明参数的顺序进行分配。