Mixture& Mixture::operator=(Mixture& m)//复制运算符重载 { if (*this == &m)//错误2 return *this; if (ps) delete[]ps; num = m.num; if (num > 0) { ps = new Pure_substance[num]; for (int i = 0; i < num; i++) ps[i] = m.ps[i]; } else ps = NULL; return *this; }这段代码怎么修改能过编译
时间: 2024-03-16 20:43:41 浏览: 64
Mixture-Starter-Framework:Mixture 中的快速原型制作项目
这段代码需要修改的地方是参数传递方式,应该将参数修改为常引用类型,同时也需要修改判断语句中的指针比较方式。修改后的代码如下:
```
Mixture& Mixture::operator=(const Mixture& m)//复制运算符重载
{
if (this == &m) //修改为指针地址的比较
return *this;
if (ps)
delete[]ps;
num = m.num;
if (num > 0)
{
ps = new Pure_substance[num];
for (int i = 0; i < num; i++)
ps[i] = m.ps[i];
}
else
ps = NULL;
return *this;
}
```
这样修改后,代码就可以通过编译了。
阅读全文