深度探索C++对象模型
在第6章, 中文版的第276页:
a[i] = b[i] + c[i] - b[i] * c[i];
关于临时对象的生成, 书说产生五个临时对象:
1, 一个临时对象用于放置 b[i] + c[i];
2, 一个临时对象用于放置 b[i] * c[i];
3, 一个临时对象用于放置 相减的结果;
4, 两个临时对象分别用于放置第1,2个临时对象.
感觉这个(4)不好理解, 好像没必要再用两个临时对象了.
(这里假设+, -, * 运算都是使用引用类型参数.)
[解决办法]
《深度探索C++对象模型》并不是圣典,只是示例。作者不保证他的例子在读者试的时候也有相同结果。
你得分析结果,看到“对象模型”的原理。