来自传递参数

时间:2015-08-06 20:56:05

标签: c++ function default-value

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

}

但放纵我。

1 个答案:

答案 0 :(得分:1)

喜欢这个

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
}

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