繁体   English   中英

如何为作为函数的函数参数分配默认值? C ++

[英]How do I assign a default value to a function parameter that is a function? C++

假设您有一个像这样的函数:

int Function(int a = 5, int b = 10){
...
}

当您使用较少的参数调用同一函数时,它应该具有例如:

int var = Function(8);

“ a”变为8,“ b”获得默认值10;

考虑到这一点,假设我有另一个称为Function3的函数,该函数接收另一个函数作为其参数:

    int Function3(int x, int Function2 (int)){
        ...
    int m = Function2(x);
        ...
    return m;
    }

如果不将任何函数作为参数发送给Function3(使用lambda函数),如何设置应调用的默认函数(function2)?

因此,如果我这样做:

int ver = Function3(y);

代替这个:

int ver = Function3(y,std::sin)

例如,如果没有任何内容作为第三个参数发送,我该如何将其乘以3? (如果必须使用该函数来与x和y一起使用)。

您的参数应该是一个指向函数的指针,您可以像分配其他任何参数一样分配它。

int Function3(int a, int b, int (*func)(int,int) = Function2)    
{
  func(a,b); //call will use passed function, or Function2 if one wasn't provided
}

我这样做的方法是,将默认值设置为NULL ,然后在函数的实现中,我首先使用if语句检查该参数是否传递了NULL ,如果是,则使用预期的默认值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM