Copy-Konstruktor



  • Dispatch_ schrieb:

    Wir haben kein Buch,

    Es gibt Geschäfte, die haben so viele davon, die müssen die sogar verkaufen.



  • Und es gibt Orte, da kann man sich Bücher sogar ausleihen.

    Man muss sie aber lesen. Nur besitzen nutzt nichts.



  • Warum schreibst du, wenn du nicht helfen möchtest?
    Ich mache immer wieder die Erfahrung, dass Informatik-Foren am wenigsten hilfsbereit sind gegenüber Anfängern. Schade drum, mir gefällt nämlich eigentlich das Prinzip gegenseitiger Hilfe gut.



  • Dispatch_ schrieb:

    Ich mache immer wieder die Erfahrung,

    Ob das vielleicht an dir liegt?
    Angeblich willst du etwas wirklich wissen, tust aber nicht, was von die als Student verlangt wird: selber nachforschen.
    Du hast kein Verständnisproblem, du bist einfach zu faul.



  • Schau mal, Kopierkonstruktoren sind etwas Grundsätzliches in C++ - Suchmaschinen listen 100.000e Seiten dazu auf. Analog wäre wohl ein Holzfällerforum, in dem du fragst, wie du eine Kettensäge startest.
    Gut zum Nachschlagen sind http://www.cplusplus.com und http://en.cppreference.com. Einen Thread mit Buchempfehlungen gibt es hier auch irgendwo.
    Kopierkonstruktoren sind hier beschrieben.

    Wenn du dann ganz konkrete Fragen hast, ("Zündkerze abgesoffen, was nun?"), können sie dir auch viel besser beantwortet werden.



  • Selbstverständlich ist es meine Schuld eine Frage gestellt zu haben. Mein Fehler, entschuldige. 😕

    Danke für nichts und tschüss. 👎



  • Mir ist das Programmieren und wie es grundsätzlich funktion und auf was, wann wo zugegriffen wird, einfach so fern, dass ich nicht weiß, was ich fragen soll.

    Deswegen weiß ich nicht, was kopiert und was nur verweist wird. Aber trotzdem vielen dank für deine Antwort.

    ps: es gibt Kettensägen die nicht ganz einfach zu bedienen sind, wenn man es das erstemal macht.



  • Dispatch_ schrieb:

    Moin Community,

    Wozu ist er da, was ist der Vorteil, wann benutze ich ihn?

    Auf meine Karteikarte für die Klausur hab ich geschrieben:

    -Übergabeparameter ist eine Variable von Typ der Klasse selbst
    -erstellt Kopie vom Objekt

    Ich finde die Reihenfolge deiner Spiegelstriche merkwürdig. Wozu der Copy-Konstruktor existiert, steht in deinem zweiten Punkt: er kopiert ein Objekt. Das ist sein Zweck, das beantwortet dein "wozu". Was der Übergabeparameter ist, ist mehr oder weniger ein Detail.



  • ...und außerdem ist der Parameter eine (hoffentlich const) Referenz auf ein Objekt des Typs (+ Vererbung) - und auch nicht zwangsweise auf eine Variable, denn man kann natürlich auch temporäre Objekte kopieren (sofern man keinen move-Konstruktor hat).



  • Object o1; // Instanz von Object
    
    Object o2 = o1 // Kopie von O1 => ruft den Copy-ctor auf.
    


  • temi (temp) schrieb:

    Object o1; // Instanz von Object
    
    Object o2 = o1 // Kopie von O1 => ruft den Copy-ctor auf.
    

    Wobei man das auch als:

    Object o1;
    Object o2(o1);
    

    schreiben könnte. Das macht es hier vielleicht einfacher.

    Man könnte sonst denken, dass o2 erst default-erzeugt wird und dann operator= aufgerufen wird (was aber nicht der Fall ist).

    Vergleiche mit:

    Object o1;
    Object o2;
    o2 = o1;
    

    Ich hoffe für Dispatch_, dass ihr schon was über "Rule of zero/tree/five" gehört habt?


Anmelden zum Antworten