Danke für die vielen Infos und Links ...
Ob ich das Pauschal machen wollte bin ich mit nicht sicher weil Code der nicht gebraucht wird die Programme nicht unbedingt übersichtlicher macht. Das Tree Objekt ist schon viele Jahre alt und nie wurde eine solche Funktion gebraucht. Bis heute ...
Normal versuche ich Kopieren zu vermeiden. Für den operator- bin ich mir aber nicht sicher ob das geht ohne Probleme zu verursachen.
Das der nur den Pointer kopiert und nicht das Objekt hatte ich mir schon gedacht. Das wird nochmal auch in einem Deiner Links bestätigt. Wenn man sich im Destruktor die Speicheradresse des Tree-Objekts ausgeben lässt ist das ja schnell gefunden.
Eine Hübschere Lösung wäre wie in dem Wikipedia Link von Dir beschrieben die Verwendung von dem std::shared_ptr. Der kümmert sich selbst um die Problematik.
<Edit>
Passt jetzt zwar nicht ganz zum Thema ist mir aber wichtig weil es seit Jahrzehnten ein Riesen Problem in der Softwareentwicklung ist und diese Core Guidlines auch diesen Schwachsinn verbreiten. Das grösste Problem in der Softwareentwicklung ist nicht das Programmierer Fehler machen sondern das wenn ein Fehler passiert das Programm alle Informationen die man zum reparieren braucht das Programm mit ins Grab nimmt. Diese Guidlines Propagieren genau das als gutes Software Design und zeigen damit das sie nicht wirklich verstanden haben wo die Probleme liegen. Die behaupten man soll aus einem Destruktor keine Ausnahme werfen weil man den Fehler nicht mehr korrigieren kann daher ist gutes Design nur terminate zu verwenden. Das ist totaler Unsinn terminate beendet das Programm ohne jeden Kommentar. Das Aufrufende Programm hat nicht mehr die Gelegenheit den Umstand des Problems zu Dokumentieren. Das was die Guidlines fordern ist extrem schlechtes Design weil es verhindert das man das Problem leicht findet und beheben kann.
Auch der Verbreitete Irrglaube Ausnahme = Fehler ist Unsinn. Dem hat sogar der Erfinder von C++ schon mehrfach scheinbar aber Erfolglos widersprochen. Ausnahme ist es wenn etwas unerwartetes Passiert das muss aber noch lange kein Fehler sein.
</Edit>