无法更新属于列表中节点的对象中的值



我有一个带有对象的基本链表。粗略的结构是这样的:

class Something {
public:
Something();
~Something();
void setValue(int v);
private:
int value;
}

class Node {
public:
Node();
~Node();
Node* getNext();
Something getSome();
private:
Something some;
Node *next;
}

class List {
public:
List();
~List();
void updateValues(int v);
private:
Node* first;
Node* current;
}

然后,在方法updateValues()上,我想更改给定NodeSomething值。但值不会改变。仍然和以前一样。我正在尝试这样的事情:

void List::updateValues(int v) {
Node* iterator = first;
while(it != NULL) {
it->getSome()->setValue(v);
it = it->getNext();
}
}

但是,每个Something在每个Node上的value不会更改。我知道这是一个指针和引用的问题,但我不完全了解如何解决它。

getSome()方法返回存储Something的副本。您的代码仅修改此副本。这可以通过返回并处理引用来修复:

Something& getSome();

相关内容

  • 没有找到相关文章

最新更新