我正在为一所学校的项目工作并有这个错误,但我无法弄清楚要解决它:
错误:将'const xArray'作为'size_t xArray :: PushBack(int)'的'this'参数传递'丢弃限定符[-fpermissive] a.PushBack(温度);
以下是错误来自的函数:
istream& operator>>(istream& in, const xArray& a)
{
int temp;
in >> temp;
a.PushBack(temp);
return in;
}
这是我的PushBack代码:
size_t xArray::PushBack(int c)
{
if(len == arraySize)
{
int* temp = new int[arraySize* 2];
size_t i;
for(i = 0; i < arraySize; i++)
{
temp[i] = data[i];
}
delete [] data;
data = temp;
data[len+1] = c;
len = len + 1;
}
else
{
data[len + 1] = c;
len = len + 1;
}
}
任何有关如何修复或解释此错误的帮助将不胜感激 提前致谢
答案 0 :(得分:1)
对于istream& operator>>(istream& in, const xArray& a)
,a
被声明为const,并且在其上调用PushBack()
将失败,因为xArray::PushBack()
是非const成员函数。
您可以将a
的参数类型更改为非const引用,例如
istream& operator>>(istream& in, xArray& a)
{
...
}