急求!关于函数返回临时对象的问题
字正腔圆 2012-06-11 06:08:33 #include "stdafx.h"
#include <iostream>
using namespace std;
class Data
{
public:
Data();
Data(int a, int b);
void putshow();
friend const Data operator +(const Data& d1, const Data& d2);
Data reply();
private:
int m_a, m_b;
};
void Data::putshow()
{
cout<<"======================================="<<endl;
}
Data::Data()
{
m_a = 0;
m_b = 0;
}
Data::Data(int a, int b)
{
m_a = a;
m_b = b;
}
Data operator +(const Data& d1, const Data& d2)
{
Data result;
result.m_a = d1.m_a + d2.m_a;
result.m_b = d1.m_b + d2.m_b;
return result;
}
Data Data::reply()
{
Data sreturn = *this;
return sreturn;
}
int _tmain(int argc, _TCHAR* argv[])
{
Data m1(1, 2), m2(3, 4), m3(5, 6);
m1.reply().putshow();//???为什么返回临时的了栈对象,还可以对它进行操作??????
(m1+m2)=m3;//??
return 0;
}