新手问题,请解惑?
#include "stdafx.h"
#include <iostream>
using std::cout;
using std::endl;
class CTest
{
protected:
int XX;
int YY;
public:
CTest operator+(const CTest& ATest)
{
return CTest(XX + ATest.XX, YY + ATest.YY);
};
int DoSum(void)
{
return XX + YY;
};
CTest(int X, int Y)
{
XX = X;
YY = Y;
};
};
int _tmain(int argc, _TCHAR* argv[])
{
CTest aTest(100, 200);
CTest bTest(200, 300);
CTest dTest(0, 0);
CTest* eTest = NULL;
dTest = aTest + bTest; //原来的dTest是不是被丢弃了?
eTest = &(aTest + bTest);
cout << "aTest.DoSum = " << aTest.DoSum() << endl;
cout << "bTest.DoSum = " << bTest.DoSum() << endl;
cout << "dTest.DoSum = " << dTest.DoSum() << endl;
cout << "eTest.DoSum = " << (*eTest).DoSum() << endl;
return 0;
}
问题:
dTest是不是重复创建了?原来的dTest是不是丢了?如果不想用*dTest的指针方法,还有没其它方法来比较方便一点?