首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

新手有关问题,请解惑

2012-03-30 
新手问题,请解惑?#include stdafx.h#include iostreamusing std::coutusing std::endlclass CTest{p

新手问题,请解惑?
#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的指针方法,还有没其它方法来比较方便一点?

[解决办法]
不是重复创建,只是用新的值取代了旧的。
[解决办法]
dTest没有重复创建,而是说里面的数据成员被赋予了新值。调用的operator=

热点排行