C++临时对象生存周期
《深度探索C++对象模型》P275上说:
如果一个临时性对象被绑定于一个reference,对象将残留,直到被初始化之reference的生命结束,或直到临时对象的生命范畴(scope)结束——视哪一种情况先到达而定。
这里的“reference的生命结束”和“临时对象的生命范畴(scope)结束”有什么区别?感觉说的是一样的。谁能针对这两种情况,举两个例子?
还是说只要临时对象绑定到引用了,则临时对象的析构就发生在引用的生命结束时?
[解决办法]
“reference的生命结束”
const A& a = B();
“临时对象的生命范畴(scope)结束”
cout << f(A()) << f(B()) << endl;
[解决办法]
- C/C++ code
cout << f(A()) << f(B()) < < endl;