STL Vector mit eigener Klasse



  • Hi zusammen,

    ich hab ein kleines Problem mit Vectoren.

    Ich hab eine Klasse Welle, diese hat einen Vector der vom Typ "Wellenabschnitte" sein soll wenn ich jetzt etwas hinzufüge bekomm ich ein AccessViolation Fehler.

    Da ich noch ganz neu in C und noch viel neuer in den STL Sachen bin ein paar Fragen:

    1. Was muss ich alles schreiben damit das funkionieren könnte??
    2. Ich hab schon einiges gelesen und bin über CopyKonstruktoren und Zuweisungsoperatoren gestolopert und hab die jetzt für meine Klassen programmiert, war das richtig und notwendig??
    3. Muss ich die Vector Klasse irgendwie überschrieben/ändern damit das mit meiner eigenen Klasse funkioniert??

    Hier mal ein kleines Beispiel wie es bei mir aussieht(funkt natürlich nicht, da die ganzen Klassen nicht dabei sind, aber nur zum groben Verständnis was ich machen will)

    std::vector<Wellenabschnitte*> myvector;
    Wellenabschnitt *wa = new Wellenabschnitt(a,b,c,d);
    myvector.push_back(wa);
    

    Bei dem letzten Befehl hängt er sich jetzt auf und gibt mir die AccesViolation Fehlermeldung.

    Da ich vermute, dass es bei mir einfach noch an den Grundlagen mangelt... Was brauch ich um einen Vector mit eigenen Klassen zu füllen??(irgendwelche Ctor,Dtor in den Klassen, Änderungen an der Vectorklasse etc pp)

    Danke euch!!

    bye

    meee

    PS wenn ich das mit nem <int> Typ mache funkioniert es, ich denke also die Aufrufe von Vector etc hab ich verstanden...



  • vermute mal das dieses ein schreibfehler war std::vector<Wellenabschnitte*> myvector;

    zeig doch mal deine klasse.



  • Hi,

    ne ein Schreibfehler wars nicht, compilieren ging. Ich hab den Fehler jetzt auch gefunden. Er lag an einer ganz anderen Stelle, nur dort ist er zum ersten mal aufgetreten... Und da ich zufällig ganz neu die Vektoren eingebaut hatte, war halt die Vermutung das es dort liegt...

    Naja im Endeffekt hatte er die Welle nicht richtig initialisiert...

    Danke für deine Mühe 🙂

    bye
    meeee


Anmelden zum Antworten