一个关于临时对象的问题:
各位高手好:
我有一个问题请教:
#include <iostream>
using namespace std;
class MyClass
{
public:
MyClass(const MyClass &)
{ cout << "Copy constructor "<<endl; }
MyClass()
{ cout << "Default constructor "<<endl; }
MyClass::~MyClass()
{
cout << "Destructor "<<endl;
}
};
MyClass foo(MyClass rv3)
{
return rv3;
}
int main()
{
MyClass rv1;
MyClass rv2 = foo(rv1);
cout << "Returned from foo "<<endl;
return 0;
}
输出结果如下:
Default constructor
Copy constructor
Copy constructor
Destructor -------------------是传值时产生的临时对象的析构???
Returned from foo
Destructor---------------------------是返回对象时产生的临时对象的析构???
Destructor------------------还是???
我想问一下,这里有三个析构函数,哪一个析构函数是?哪一个是返回对象时产生的临时对象所产生的析构?
为什么??