让我们说对象A和B。
调用这样的函数/参数是一个好习惯:
A[B->getValue()].setValue(C.getValue() + 10);
考虑所有必需的假设,例如A是数组,B是对象指针,C是对象,setValue和getValue是该类的方法等。
这个问题的唯一要点是如果调用这样的函数是好的吗? 或者它应该更像是:
Temp1 = b->getValue();
Temp2 = c.getValue();
A[Temp1].setValue(Temp2 + 10);
答案 0 :(得分:1)
使用
Temp1 = B->getValue();
Temp2 = C.getValue();
A[Temp1].setValue(Temp2 + 10);
适合调试。调试完代码后,最好使用:
A[B->getValue()].setValue(C.getValue() + 10);
答案 1 :(得分:0)
使用 anonymous temporaries 是没有错的,这是A[B->getValue()].setValue(C.getValue() + 10);
语句正在做的事情。除了发现它更清楚之外,我更喜欢这个,因为它可以防止将太多变量泄漏到范围内。
请注意,C ++标准允许将匿名临时值传递给const
引用的函数参数。