来自传递参数的函数的默认值

Default value of functions from passed arguments

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
}

换句话说,重载你的函数,让两个参数版本调用具有默认值的三个参数版本。