Zeiger oder Referenz?



  • was spricht dagegen es so zu machen

    prinzipiell: dass das kopieren des Kontos eine andere Syntax hat als das Kopieren eines ints.

    int zahl( andereZahl);
    Konto( &anderesKonto);

    In Deiner Umsetzung: Dass das Orginal verändert werden kann, da ein const fehlt, dass Du Dein Objekt mit 'Konto konto();' initialisieren musst statt, wie man es normalerweise macht mit 'Konto konto;', dass Du keine Initialisierungslisten verwendest ...

    Außerdem: Dein Beispiel ist auch eine Art Kopierkonstruktor, nur dass er nicht konventionell ist sondern halt nen Zeiger statt der const Ref kriegt. Du hingegen sagst

    Den tieferen Sinn des Copy-Konstruktors habe ich auch nie eingesehen. Wenn zwei oder mehr Instanzen einer Klasse benotige, die die gleichen Daten enthalten oder sich nur unwesentlich unterscheiden, dann baue ich eher eine weitere Klasse, die die gemeinsamen Daten beinhalten und lasse einen Pointer als Member der Klasse auf die Klasse mit den gemeinsamen Daten zeigen

    du meinst also, dass sich Copy-Ctor und Zeiger irgendwie ersetzen. Tun sie aber nicht. Sind völlig verschiedene Dinge.


  • Mod

    kartoffelsack schrieb:

    In Deiner Umsetzung: Dass das Orginal verändert werden kann, da ein const fehlt, dass Du Dein Objekt mit 'Konto konto();' initialisieren musst statt, wie man es normalerweise macht mit 'Konto konto;'

    nein, Einzelkonto ist ja kein POD. Im übrigen ist dein Vorschlag eine Funktionsdeklaration.



  • nein, Einzelkonto ist ja kein POD. Im übrigen ist dein Vorschlag eine Funktionsdeklaration.

    ok, sorry, einen Ctor mit Standard-Wert 'EinzelKonto::EinzelKonto (EinzelKonto *pSource = NULL)' kann/muss man offensichtlich mit 'Einzelkonto konto;' (also ohne '()') aufrufen. Ändert aber nix am Rest.


Anmelden zum Antworten