来自传递参数的函数的默认值
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
}
换句话说,重载你的函数,让两个参数版本调用具有默认值的三个参数版本。
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
}
换句话说,重载你的函数,让两个参数版本调用具有默认值的三个参数版本。