Vector aus eigener Klasse?
-
Schönen Guten Abend,
ich verzweifele momentan daran, einen funktionierenden Vector aus einer selbstgeschriebenen Klasse zu erzeugen. Kompiliert und ausgeführt wird alles einwandfrei. Wenn ich jedoch zur Laufzeit auf irgendeine Methode (z.B. push_back(...) zugreife, löst das Programm folgende Exception aus "EAccessViolation".
Im Falle der Methode "push_back(...)" zeigt Borland den Fehler im vector_header (2. Zeile ist blau markiert).
void push_back(const _Tp& __x) { if (this->_M_finish != this->_M_end_of_storage._M_data) { _Construct(this->_M_finish, __x); ++this->_M_finish; } else _M_insert_overflow(this->_M_finish, __x, _IsPODType(), 1UL, true); }
Meine Klasse, aus der ich einen Vector erstellen möchte:
class Produkt{ private: int bestellnummer, produkt_id, mwst_satz, anzahl; float produkt_preis; AnsiString produkt_name, produkt_beschreibung, bild_pfad; public: (Einige Funktionen) };
Kann es sein, dass ich noch Konstruktor, Destruktor und Zuweisungsoperator "=" für die Klasse Produkte definieren muss, um aus dieser Klasse einen Vector machen zu können?
Hab schon mal nachfolgendes in Verbindung mit Standardkonstruktor und Destruktor versucht. Hat aber nicht hingehauen.
const Produkt& operator=(const Produkt &uebergabe){ if (this != &uebergabe) { this->bestellnummer = uebergabe.bestellnummer; this->produkt_id = uebergabe.produkt_id; this->mwst_satz = uebergabe.mwst_satz; this->anzahl = uebergabe.anzahl; this->produkt_preis = uebergabe.produkt_preis; this->produkt_name = uebergabe.produkt_name; this->produkt_beschreibung = uebergabe.produkt_beschreibung; this->bild_pfad = uebergabe.bild_pfad; } return *this;
Danke im Vorraus
Sebastian
-
Hallo,
Könntest du evtl. mal eine Stelle posten an der die Ausnahme ausgelöst wird ?
So ist erstmal nichts zu erkennen.Für Klassen die in STL-Containern verwaltet werden sollen, sollten die Standart Methoden Konstruktor,Destruktor, Copyconstruktor usw. vorhanden sein. Aber ich denke nicht, dass das das Problem ist. Der Kompiler erzeugt zur Not auch implizit Standartkonstruktoren usw.. Ob das das ist was man will sei dahin gestellt.
Verwaltest du Instanzen von Produkt oder Zeiger auf Instanzen von Produkt im vector ?
-
Dieser Thread wurde von Moderator/in Jansen aus dem Forum Borland C++ Builder (VCL/CLX) in das Forum C++ verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Hallo,
habe das Problem so gelöst, indem ich die Klasse Produkt in eine Struct Produkt umgewandelt habe. Jetzt funktioniert alles einwandfrei. Weiß zwar nicht genau, wo der Fehler lag - ist ja aber auch erstmal egal.
Danke für die Antworten.Gruß
Sebastian