我的代码有一些无法解决的错误。有错误:
错误:在只读对象中分配了成员“ Line :: sum” sum = tmp;
错误:只读对象中成员“ Line :: number”的增量 数字++;
错误:将“ Line&”类型的引用绑定到“ const Line”会丢弃限定符 return(* this);
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);
}
答案 0 :(得分:3)
对于初学者(C ++ 17标准,5.10标识符)
3 此外,某些标识符保留给C ++使用 实施,否则不得使用;没有诊断是 必填。
选择另一个标识符而不是单词new
。
第二,成员函数具有限定符const
Line & Line :: operator += (const Info & new) const{
^^^^^
因此,如果未使用说明符mutable
声明相应对象的数据成员,则不得更改。
根据operator +=
的逻辑,成员函数应声明为不带限定符const
Line & Line :: operator += (const Info & new) {