我有一个类,像这样:不能分配给该
class Node {
// data
Node* next;
void operator++(int);
};
当我定义递增运算符,就像这样:
void Node::operator++(int) {
this = this->next;
}
我得到的错误Expression is not assignable
上this = this->next;
。
这是怎么回事?我如何获得this
指向next
?
'this'只能用作指向当前实例的指针。指派给“this”是没有意义的。你为什么想这么做 ? – Tuxdude 2013-03-11 07:20:45
也许你可以改成'Node * Node :: operator ++(int){return this-> next; }' – Jichao 2013-03-11 07:22:34
顺便说一句,后缀'operator ++'返回void是很奇怪的。这势必会混淆用户。人们会期望它返回一个“节点”。 – juanchopanza 2013-03-11 07:25:42