例如:
private:
Node* curr;
public:
Node*& Iterator::getCurr() {
return curr;
}
bool Iterator::operator==(const Iterator& other) {
return curr == other.getCurr();
}
我在这段代码中收到错误:
将'const Iterator'作为'Node'&的'this'参数传递 Iterator :: getCurr()'丢弃限定符[-fpermissive]
我该如何解决?
答案 0 :(得分:2)
不要一起阅读
如果你看到这样的话:
Foo& foo();
你知道&
意味着什么吗?
这是对Foo的引用
然后
Foo* foo();
这个怎么样?这是指向Foo的指针
然后
Foo*& foo();
是指“指向Foo的指针”
答案 1 :(得分:2)
Node*&
表示“引用指向Node
的指针”。你可以正常退货。但是,访问它可以通过两种方式完成:“正常”方式,“引用”部分将被删除,以及保留引用的方式。后一种方法的优点是您可以更改基础curr
值:
Node *&curr = iterator.getCurr();
curr = new Node(); // or something like that
// iterator.curr has been changed
答案 2 :(得分:0)
它是指向Node
的指针。