我有一个结构:
struct node
{
QPoint position;
QVector<node> neighbours;
void add(QPoint);
void addNeighbours(QVector<node>);
...
};
使用方法:
void node::add(QPoint p)
{
position = p;
}
void node::addNeighbours(QVector<node> n)
{
neighbours = n;
}
但是,当我尝试使用addNeighbours时,出现以下错误:
error: C2662: 'node::addNeighbours' : cannot convert 'this' pointer from 'const node' to 'node &'
Conversion loses qualifiers
从网上看,我认为解决方案来自;使用正确的指针,并可能通过QVectors::Iterator()
. 尽管我无法提出解决方案,但非常感谢任何指向正确方向的指针或解释为什么会发生这种情况。
主要的:
int main(int argc, char *argv[])
{
QVector<node> map;
QVector<node> tmp;
node n;
//Populate map
for(int i = 0; i < 3; i++)
for(int j = 0; j < 3; j++)
{
n.add(QPoint(i,j));
map.append(n);
}
//Add required nodes to tmp
tmp.append(map.at(1));
tmp.append(map.at(3));
//Set the neighbour nodes of map(0) using tmp vector
map.at(0).addNeighbours(tmp);
}