我问这个只是为了知道 - 不一定我的代码最终会使用这种策略。
假设我有一个类似的类:
class Calc
{
public:
Calc( int &X, int &Y, CalcType aType )
{
int h = Helper( X );
// All the hard work will be done here.
}
int Helper( int I ) { // Do something }
enum CalcType
{
Add,
Sub,
Mul,
Div
};
};
将优化删除此调用:
Calc( X, Y, Calc::Add );
它会删除这个:
Calc iCalc( X, Y, Calc::Add ); // iCalc will be unused hence after.
有什么理由不做这样的事情(在构造函数中完成工作)?