【发布时间】:2017-03-22 16:18:39
【问题描述】:
这听起来可能是个疯狂的问题。
在我的 C++ 代码中,我创建了一个这样的方法
void Func(int & param_1, bool & param_2, float & param_3, double & param_4) {
//some logic
}
所以我调用main 中的方法,如下所示:
int i_val;
bool b_val;
float f_val;
double d_val;
//invoke Func here
Func(i_val, b_val, f_val, d_val);
问题:有没有办法避免创建临时变量i_val, b_val, f_val 等等?并在调用本身的行中创建它们?
我只对创建 i_val 和 b_val 并获取它们的值感兴趣。 f_val 和 d_val 对我来说是不必要的,但在其他一些与我无关的电话中是必需的。有没有办法避免创建临时变量只是将每个参数传递给调用?
我知道我们可以将最后 2 个参数设置为默认参数,但是使用默认参数会使函数参数忽略调用者。有没有办法不将最后 2 个参数设为默认值?在调用方法的那一刻动态创建 float 和 double 变量
我知道我会收到关于您为什么不想使用默认参数而只是检查是否有可能的交叉问题:)
【问题讨论】:
-
使用函数重载
-
除非有很好的理由不这样做,否则我会返回一个结构。然后你会得到你想要的。顺便说一句,通过这样做,您可以声明结果变量 const。