Vectoren als Members



  • Hallo,

    ich habe eine komisches Problem:

    In einer HeaderDatei steht folgendes:

    // ...
    #include <vector>
    
    class cTest {
    private:
    // ...
    public:
    //...
    struct sTest{
    int a;
    int b;
    DWORD c;
    }
    sTest	m_Test[21];
    
    }
    

    Das Problem ist vollgendes: Ich möchte den Array m_Test[] variable machen. D.H., ich möchte mitten im Pogramm ein Element hinzufügen oder löschen. Dies wollte ich mit Vectoren machen. Wenn ich aber schreibe:

    vector<sTest>	m_Test(21);
    

    kommen ganz viele Fehler. Alle hier kann ich nicht auflisten, aber sie besagen im Grund nur das eine. Diese Klasse kennt keine Vectoren und kann mit vector<sTest> m_Test(21); nichts anfangen. Das kann ich aber nicht verstehen, da ich vector includiert habe. Ausserdem funktionieren Vectoren ausserhalb der Klasse 100%-tig.

    Hoffe auf Hilfe,

    Christopher



  • hast Du's mal mit

    std::vector<sTest> m_Test(21);
    

    probiert?



  • Die Größe musst du im c'tor mitgeben wenn es nicht static ist.



  • Außerdem ist die Größe von Vektoren nicht Teil des Typs, du kannst sie deshalb nicht schon bei der Deklaration angeben. Stattdessen musst du den vector im Konstruktor der enthaltenden Klasse initialisieren (wenn der vector überhaupt eine Anfangssgröße braucht):

    cTest::cTest()
    : m_Test(21)
    {
    }
    


  • Das gleiche in grün.



  • Mein "außerdem" bezog sich nicht auf dich. Ich hab mal wieder zu schreiben angefangen und dann doch wieder fünf Minuten anderswo verlabert, bevor ich auf "Absenden" gedrückt habe 🙂


Anmelden zum Antworten