传递参数的函数的默认值

Default value of functions from passed arguments

本文关键字:函数 默认值 参数      更新时间:2023-10-16
double myfunc(int i, vector<custom_class>& class_vec, double x = class_vec[i].y)
{
    // do things
}

我想让函数从我传递给它的向量中获取一个默认值,除非我传递给它一个不同的参数,如上所述。这可能吗?

我明白这样做更容易,也许更安全

double myfunc(int i, vector<custom_class>& class_vec, double x = 0)
{
    if(x == 0) x = class_vec[i].y;
    // ... then do stuff
}

却纵容我。

像这样

double myfunc(int i, vector<custom_class>& class_vec)
{
    return myfunc(i, class_vec, class_vec[i].y);
}
double myfunc(int i, vector<custom_class>& class_vec, double x)
{
    // do things
}

也就是说,重载你的函数,让两个参数版本用默认值调用三个参数版本。