Peggio di quanto pensassi

Provengo da Java e sapevo che la storia dei puntatori sarebbe stata drammatica.

credo che l'idea corretta sia quella di passare l'oggetto Box all'interno della chiamata a muovi, poi questo lo puoi fare (in C++) con un puntatore o meglio un reference.
Il problema è che non riesco a districarmi tra & e *... fin'ora ho capito che * è il puntatore e & è il "bersaglio", se così si può dire. Vado errato?