void method( double code = 0, CQueue* = NULL).
我在“.h”文件中定义了此方法。在.cpp文件中,我在ont方法中分配代码的值(我希望队列在这里为空),并在另一个方法中为队列分配一个null(此处代码必须为0) 两个参数都是默认类型,它在c ++中是否有效? 什么可以替代方式?
答案 0 :(得分:6)
完全有效。这意味着method();
与method(0, NULL);
相同,method(x);
与method(x, NULL);
相同,最后method(x, y);
本身就是一样。
要单独传递队列,您需要重载该函数(即具有相同名称但不同参数的另一个函数)。像这样:
void method(queue q)
{
method(some-default-value, q);
}
答案 1 :(得分:0)
这是有效的。
一个问题:您可能希望将第一个参数用作默认值,而第二个参数则不是默认值 在这种情况下,您需要手动提供第一个参数或使用重载
void method(queue x){
method(0, x);
}
答案 2 :(得分:0)
在c ++中,您可以在一个条件下拥有所需的默认参数: 具有默认值的参数必须在所有其他参数之后。
当您指定值时,它们将按照函数原型中声明参数的顺序进行分配。