Because you are not changing any variable in X
. Actually, you are changing _y
which is an outsider with respect to your class. Don’t forget that:
y = newY;
Is assigning the value of newY
to the variable pointed by y
, but not the references them selves. Only on initialization the references are considered.