This expression:
CPlayer(position, attacker)
creates a temporary object of type CPlayer
using the above constructor, then:
CPlayer newPlayer =...;
The mentioned temporary object gets copied using the copy constructor to newPlayer
. A better way is to write the following to avoid temporaries:
CPlayer newPlayer(position, attacker);