从其他函数调用函数或作为数组的参数调用是好/坏的做法吗?

时间:2015-11-30 08:07:51

标签: c++ oop c++11

让我们说对象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);

2 个答案:

答案 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引用的函数参数。