Objekte überschreiben?



  • Hi alle miteinander

    Nachdem heute bereits ein gröberes Problem meiner Klassen in diesem Forum gelöst werden konnte, steht, wie das halt so ist, leider bereits das nächste an:

    Wenn ich folgenden Code ausführe:

    CIEC1107 ewbTmp = CIEC1107();
    CLPMeter lpTmp = CLPMeter(ewbTmp);
    CEMeter emTmp = CLPMeter(ewbTmp);
    

    Klappt das wunderbar fehlerlos. Mache ich dasselbe allerdings so:

    CIEC1107 ewbTmp = CIEC1107();
    CLPMeter lpTmp = CLPMeter();
    CEMeter emTmp = CLPMeter();
    
    // ...
    
    lpTmp = CLPMeter(ewbTmp);
    emTmp = CLPMeter(ewbTmp);
    

    gibt es bereits beim Überschreiben von lpTmp einen Segmentation Fault. Da dabei eigentlich 2 mal derselbe Konstruktor aufgerufen wird, macht mich das ein wenig stutzig.

    Worin liegt der Unterschied vom ersten zum zweiten Fall? Und wieso kann das mein ganzes Programm lahmlegen? 😕

    Thx für jede Hilfe und Greeetz
    Kessi



  • Ersteres ist Copy-Initialisierung bei zweiterem wird einfach eine Zuweisung durchgeführt.

    Hast du den op= implementiert?



  • lolz schrieb:

    Hast du den op= implementiert?

    In einem Wort: nein. 😃

    Und das war auch genau das Problem 🙄 . Das Leben könnt' so einfach sein...

    Jedenfalls vielen Dank und greeetz
    Kessi


Anmelden zum Antworten