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.


Anmelden zum Antworten