Vector mit eigener Klasse erstellen



  • Ich möchte in meinem Programm per Knopfdruck einen Vektor in Verbindung mit einer eigenen Klasse erstellen.

    Der Konstruktor erfordert eine int Variable, die im Normalfall den Wert 0 erhalten soll.

    //OberKlasse.cpp
    OberKlasse::OberKlasse(int X=0) {...}
    
    //Form1.h
    private: System::Void Testfunktion_Click(System::Object^  sender, System::EventArgs^  e)
    {
    	std::vector<OberKlasse> Vektor(8);
    }
    

    Mein Problem ist, dass der Compiler wegen einem fehlenden Standardkonstruktor quengelt.
    Wie müsste ich denn die Zeile abändern, damit es funktioniert?

    Nebenfrage: Muss man Vektoren zwangsweise mit 3 Indizes verwenden (Vektor[1,2,3]...), oder reicht auch ein Index (Vektor[1]...)?



  • Mach entweder C++/CLI oder C++ - Du mischst die beiden!

    Zu deiner eigentlichen C++ Frage:
    Default Werte für Argumente gehören in den Header, im Source File sollen die nicht sein! -> dann hast Du einen Default Konstruktor.

    Nebenfrage: Muss man Vektoren zwangsweise mit 3 Indizes verwenden (Vektor[1,2,3]...), oder reicht auch ein Index (Vektor[1]...)?

    Verstehe ich nicht ganz. Beim std::vector<..> gibt nur eine Index Operator für EIN Index.



  • Danke erstmal für die schnelle Hilfe. 🙂
    Was ist denn der Unterschied zwischen C++ und C++/Cli? 😕
    Wie müsste ich den Code abändern, damit ich beim erstellen des Vektors eine Variable an den Konstruktor übergeben kann?

    Vektor.resize(4,OberKlasse(6)); //das bringt mein Programm zum Absturz
    


  • GR-Thunderstorm schrieb:

    Wie müsste ich den Code abändern, damit ich beim erstellen des Vektors eine Variable an den Konstruktor übergeben kann?

    Vektor.resize(4,OberKlasse(6)); //das bringt mein Programm zum Absturz
    

    http://www.cplusplus.com/reference/stl/vector/

    GR-Thunderstorm schrieb:

    Danke erstmal für die schnelle Hilfe. 🙂
    Was ist denn der Unterschied zwischen C++ und C++/Cli?

    C++/CLI ist eine eigene .NET Sprache wie z.B. VB.NET oder C#. Allerdings hat sie eine kompiliziertere Syntax und hat sehr, sehr viele Fallstricke - gerade für Anfänger. Hierzu noch: http://www.c-plusplus.net/forum/263084
    C++/CLI ist für Interop Layer zwischen der managed / native Welt geeignet.


Log in to reply