1、临时对象产生的时间点
对象作参数(值传递)、返回对象(值传递)
2、临时对象析构的时间点(重点、难点)
3、临时对象会降低效率,但是哪些情况必须使用临时对象?
【注】真正的临时对象是看不见的,它不会出现在程序代码中。
示例:
> 【提示】代码中有输出this,主要是在单步调试的时候方便观看构造、拷贝、析构的是哪一个对象!
#include <iostream>
using namespace std;
class A
{
public:
A()
{
cout<<"构造"<<this<<endl;}
A(const A& a)
{
cout<<"拷贝"<<this<<endl;
}
virtual ~A()
{
cout<<"析构"<<this<<endl;
}
};
void f1(A aa)
{
cout<<"aa = "<<&aa<<endl;//加入此句目的:为了判断copy出来的临时对象temp是否和形参对象a是一个对象(答案:是!)