I would have thought that the order of operations would be:
1) Read value from currentPos.x and add 1. Do same for y.
2) Pass values to constructor
3) Construct the new object
3a) init values with 0
3b) assign new values to x and y
4) Assign the newly constructed object's pointer to currentPos.I thought that the problem lay in 4 where you might read a partial update of the pointer, possibly giving weird results. Is he saying that it might get assigned first and then constructed afterwards?