|
|
10鱼币
本帖最后由 JJ张彬华 于 2013-10-20 21:33 编辑
#include <iostream>
#include <string>
class Myclass
{
public:
Myclass(int *num);
Myclass operator=(const Myclass &ris);
void printff();
private:
int *numm;
} ;
Myclass::Myclass(int *num)
{
numm = num;
}
Myclass Myclass::operator=(const Myclass &ris)
{
if(this!=&ris)
{
delete numm;
numm = new int;
*numm = *ris.numm;
}
else
{
std::cout<<"赋值号两边一样,不给予操作\n";
}
}
void Myclass::printff()
{
std::cout<<*numm<<"\n";
}
int main()
{
Myclass obj1(new int(1));
Myclass obj2(new int(2));
obj1.printff();
obj2.printff();
obj1 = obj2;
obj1.printff();
obj2.printff();
return 0;
}
既然这两对象分配的动态内存都不同了,那在重载函数中的 delete numm;
numm = new int;不是就多余了吗?求解释
|
|