Das Ding heißt Destruktor, nicht Dekonstruktor.
Und das Problem ist, dass der Parameter von charger::chargeAccu ein handy ist. Das ist "Call-by-value", da wird eine Kopie des handy-Objekts erzeugt, und diese Kopie wird natürlich auch wieder zerstört.
Das bedeutet auch, dass charger::chargeAccu den Parameter in keiner Weise verändern kann, weil die Methode nur mit einer Kopie arbeitet. In deinem aktuellen Code wird das handy zwar nicht verändert, sinnvoll wäre es aber schon. Wenn es also irgendwann mal ein handy::setAccuCapacity geben sollte, wirst du bemerken, dass es in charger::chargeAccu nichts bewirkt.
Die Lösung ist, den Parameter hier als Referenz zu übergeben.