Call by Reference Beispiel, dass nicht auf einfache Integer basiert?
-
Hallo mit einander!
irgendwie klappt keine meiner Varianten ein simples Call by Reference zu implementieren, bei dem ein Zeiger auf ein Objekt verändert werden soll...

Im Netz finde ich immer Beispiel mit Integer-Variablen, die übergeben werden, aber das hilft mir nicht weiter. Ich habe mal ein minimal Beispiel geschrieben, was natürlich so nicht funktioniert, aber evtl. könnt ihr das "reparieren"
Mir geht es nur darum, dass nach dem Aufruf der Methode:
cloneDog(*waldi);
der Zeiger waldi auf das Objekt zeigt, was ihm in der Methode zugewiesen wurde...// .h class Base { ... void cloneDog(Dackel& _outParam); }; // .cpp void Base::jagen() { Dackel* waldi = 0; cloneDog(*waldi); waldi->fang(); } void Base::cloneDog(Dackel& _outParam) { Dackel* berta = new Dackel(); _outParam = *berta; }
-
void Base::cloneDog(Dackel*& _outParam) { Dackel* berta = new Dackel(); _outParam = berta; }
-
and very probably waldi/berta will be a leaker...

-
Vielen Dank!
Ach ja und in meinem realen Fall ist Waldi/Berta kein Leaker, ich habe hier nur ein extrem vereinfachtes und künstliches Beispiel gebastelt, um das Prinzip mit dem Referenzieren und dereferenzieren zu checken
