Seltsames Verhalten bei vector



  • Hallo,

    ich habe in meinem Code ein Phänomen, das ich mir absolut nicht erklären kann. Ich habe eine Klasse Foo mit Ctor, der 2 Werte kriegt.
    Folgender Code:

    Foo f1(resource, box);
    // An dieser Stelle sind alle Werte von f1 korrekt initialisiert
    myVector.push_back(f1);
    myVector.push_back( Foo(resource, box) );
    // myVector[0] hat korrekte Werte
    // myVector[1] hingegen Schrottwerte!
    

    Wenn ich Foo auf dem Stack anlege und dann in den Vector pushe, passt alles (alle Member von Foo sind initialisiert).
    Pushe ich jedoch direkt ein Foo Objekt in den Vektor (quasi per Temp-Objekt), stehen im Foo Objekt im Vektor nur Schrottwerte!

    Wie kann das sein? 😕



  • Das wird an Foo liegen.



  • Wie gesagt, Foo hat nur einen Ctor, der 2 Werte kriegt. Ich hab Breakpoints gesetzt und am Ende vom Ctor sind alle Werte ok.
    Aber nach dem push_back steht nur noch Schrott im Foo! Kann das irgendwas mit CopyCtor und Dtor zu tun haben?



  • Ja. Poste Foo.


Anmelden zum Antworten