Klasse als Vector, aber wie lege ich neue Elemente an?
-
Hallo, ich mal wieder.
Ich habe eine Klasse erstellt (etwa so):
class A { public: A(); // Basis Construktor A(RE_struct& , std::vector<AR_struct>&); // 2.Construktor . . }Nun mache ich dies:
´ std::vector<A> abc;Dadurch habe ich ja nun die Klasse A als vector-container abc angelegt.
Nun möchte ich ein Klassenelement dem vector beifügen und mittels meines 2.Construktors direkt initialisieren..
Also quasi so:RE_struct re1; std::vector<AR_struct> ar1; // Diese Strukturen fülle ich und möchte nun über den 2.Construktor meiner Klasse ein weiteres abc Klassenelemnt dem vector beifügen. abc.push_back(re1, ar1); // Geht aber nicht.Warum geht das nicht? abc ist doch als Vector definiert.
Aber wie geht es denn dann?Gruß,
DC
-
Hallo,
du musst den Konstruktor expliziet aufrufen:
abc.push_back(A(re1, ar1));ps.: 'Geht nicht' ist keine gute Felherbeschreibung.
-
Du hast da ein Verständnisproblem. Du musst in den Vector Objekte vom Typ A stecken und nicht den Vector behandeln, als wäre er vom Typ A.
abc.push_back(A(re1, ar1)); // <-- temporäres Objekt anlegen, welches in den Vectro kopiert werden kann
-
Vielen vielen Dank.
Das klappt bestens.