Question: I have a class like so:

```
class Node {
    // data
    Node* next;
    void operator++(int);
};

```

And when I define the post-increment operator like so:

```
void Node::operator++(int) {
    this = this->next;
}

```

I get the error `Expression is not assignable` on `this = this->next;`.

What's up with this? How do I get `this` to point to `next`?

Answer: 
This can not be changed. it is constant.
You cannot do that. Even if by some dirty tricks you change `this`, the change won't be propagated to the caller. `this` is a hidden formal argument of methods.