问题一个const作函数参数的问题。
出问题的函数如下:
vector<int> *buildVec(const Sequence &sq)
{
vector<int> *newSeq = new vector<int>;
int sqSize = sq.getSeqSize();
int elem;
for(int id = 1; id <= sqSize; id++)
{
elem = sq.getElemByIndex(id);
newSeq->push_back(elem);
}
return newSeq;
}
编译后提示:
error: passing `const Sequence' as `this' argument of `int Sequence::getElemByIndex(int)' discards qualifiers
如果去掉形参中的const的话就正常了,为什么呢?我并没有修改sq的值啊?
付getElemByIndex的定义:
int Sequence::getElemByIndex(int index)
{
int liId = index;
if( isIndexOk(liId) )
return Seq[index-1];
else
{
cerr << "Bad index found!" << endl;
return -1;
}
}