【发布时间】:2019-09-24 06:19:02
【问题描述】:
我的代码有一些我无法解决的错误。有错误是:
错误:在只读对象中分配成员“Line::sum” 总和 = tmp;
错误:只读对象中成员“Line::number”的增量 数字++;
错误:将“Line&”类型的引用绑定到“const Line”会丢弃限定符 返回(*这个);
Line & Line :: operator += (const Info & new) const{
Info * tmp = new Info[number+1];
for (int p=0; p<number; p++)
tmp[p] = sum[p]; // Sin memoria dinámica
tmp[num_paradas] = new; // Sin memoria dinámica
delete [] sum;
sum = tmp;
number++;
return(*this);
}
【问题讨论】:
-
除非你在做一些奇怪的事情,否则我相信
operator+=不应该是const。操作符的目的通常是修改它所调用的对象,所以拥有const没有意义。 -
new是保留关键字。您不能将其用作标识符名称。
标签: c++ operator-overloading constants assignment-operator