Problem mit List und vektoren



  • Guten Morgen,

    Ich hab da ein kleineres Problemchen mit der List und den Vectoren.
    Ich Schtreib den entsprechenden Code hier nacheinander für die jeweilige stufe, da die List/der Vektor wiederrum das selbige beinhalten. Der Kompiler spuckt mit aber extrem viele Fehler aus(300+). Diese sind mitunter auch in den Kompilerklassen. Ich weis nicht wo ich da den fehler gemacht habe...
    Hoffe ihr könnt mir helfen.

    Form1:

    #pragma once
    #include <vector>
    //#include "AntwortDaten.h"
    

    das steht gaaanz oben in der Klasse. das problem verschlimmert sich, wenn ich die AntwortDaten wieder auskommentier. 😉

    public:
    		Image ^img;
    		vector<AntwortDaten*> faecher;
    

    das dann unter der Public deklaration

    System::Void pruefungAuswaehlenToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {
    			 faecher.push_back(new AntwortDaten()*);
    		 }
    

    und dass dann in der entsprechenden Methode.

    nun zu den AntwortDaten.h .

    class AntwortDaten {
    	private:
    		string fach;
    		string pruefungsName;
    		vector<Antwort*> antworten;
    
    	public:
    		AntwortDaten();
    

    folgendes steht dann in der entsprechenden cpp.

    AntwortDaten::AntwortDaten() {
    		fach = "Mathe";
    		pruefungsName = "Mathe 10. Klasse";
    		antworten.push_back(new Antwort("1. 3254"));
    		antworten.push_back(new Antwort("2. 32"));
    		antworten.push_back(new Antwort("3. 324"));
    		antworten.push_back(new Antwort("4. 254"));
    		antworten.push_back(new Antwort("5. 325"));
    	}
    

    und die Antwort is eine simple Klasse. siehe folgendes.

    Antwort::Antwort(string aw) {
    		antwort = aw;
    		sichtbar = true;
    	}
    
    	void Antwort::abgehackt() {
    		sichtbar = false;
    	}
    
    	string Antwort::getAntwort() {
    		return antwort;
    	}
    
    	void Antwort::setAntwort(string aw) {
    		antwort = aw;
    	}
    

    die entsprechenden Header sind alle includiert. die selben Fehler treten auch bei der list auf. kann mir da jemand helfen?



  • Nimm einfach kein std::vector<..> (der ist native C++), sondern die Klasse System::Collections::Generic::List<..> (die .NET Liste).

    Gruss Simon

    BTW:
    C++/CLI ist nicht für Anfänger geeignet.
    http://www.c-plusplus.net/forum/263084



  • hehe. da is ja das selbe Problem ^^ da kommen auch über 100 fehler zustande..

    und ja, ich weiß, dass c++ nicht für anfänger ist. Ich hab PHP, Java und C# gelernt und kann die auch ganz gut anwenden. Aber das Projekt erfordert C++ CLI.
    Was anderes kann und Darf ich nicht verwenden, da Das Programm noch embedded wird. und ich die vorabversion als eigenständig erarbeiten soll.



  • Schön, das sind deine Vorgaben.

    und ja, ich weiß, dass c++ nicht für anfänger ist.

    Hmm.. es geht ja eben nicht um C++, sondern um C++/CLI.

    da kommen auch über 100 fehler zustande..

    Ist aber der korrekte Weg. Zeig die Fehlermeldungen und wie Du die Liste dekl. und erzeugt hast.



  • ja, c++/cli. entschuldige bitte. 🙂

    Also. Ich poste mal die Fehler 😉
    Deklaration im Public Teil (private kann ich die dann immernoch machen ^^

    List<AntwortDaten> ^faecher = gcnew List<AntwortDaten>();
    

    die erstellung:

    System::Void pruefungAuswaehlenToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {
    			 faecher->Add(new AntwortDaten());
    		 }
    

    nun zu den daten:

    AntwortDaten::AntwortDaten() {
    		fach = "Mathe";
    		pruefungsName = "Mathe 10. Klasse";
    		antworten->Add(new Antwort("1. 3254"));
    		antworten->Add(new Antwort("2. 32"));
    		antworten->Add(new Antwort("3. 324"));
    		antworten->Add(new Antwort("4. 254"));
    		antworten->Add(new Antwort("5. 325"));
    	}
    

    in beiden klassen sind die Generics geladen als namespace.

    und nun das FehlerChaos... 😞

    Antwort.cpp
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C2065: 'Antwort': nichtdeklarierter Bezeichner
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C2955: "System::Collections::Generic::List": Für die Verwendung der generic-Klasse ist eine generic-Argumentliste erforderlich.
    c:\program files (x86)\reference assemblies\microsoft\framework\.netframework\v4.0\mscorlib.dll: Siehe Deklaration von 'System::Collections::Generic::List'
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C2065: 'Antwort': nichtdeklarierter Bezeichner
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C2955: "System::Collections::Generic::List": Für die Verwendung der generic-Klasse ist eine generic-Argumentliste erforderlich.
    c:\program files (x86)\reference assemblies\microsoft\framework\.netframework\v4.0\mscorlib.dll: Siehe Deklaration von 'System::Collections::Generic::List'
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3265: Ein verwalteter 'antworten' kann nicht in einem nicht verwalteten 'Correctus::AntwortDaten' deklariert werden
    Eine globale oder statische Variable oder ein Member eines systemeigenen Typs, der auf Objekte im gc-Heap verweist, kann nicht deklariert werden.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C2864: "Correctus::AntwortDaten::antworten": Nur statische konstante integrale Datenmember können innerhalb einer Klasse initialisiert werden.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\Form1.h(22): error C2065: 'AntwortDaten': nichtdeklarierter Bezeichner
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\Form1.h(22): error C2955: "System::Collections::Generic::List": Für die Verwendung der generic-Klasse ist eine generic-Argumentliste erforderlich.
    c:\program files (x86)\reference assemblies\microsoft\framework\.netframework\v4.0\mscorlib.dll: Siehe Deklaration von 'System::Collections::Generic::List'
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\Form1.h(22): error C2065: 'AntwortDaten': nichtdeklarierter Bezeichner
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\Form1.h(22): error C3845: "Prüfung::Form1::faecher": Nur statische Datenmember können innerhalb einer Verweisklasse oder eines Werttyps initialisiert werden.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\Form1.h(419): error C2061: Syntaxfehler: Bezeichner 'AntwortDaten'
    AntwortDaten.cpp
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\Form1.h(22): error C2065: 'AntwortDaten': nichtdeklarierter Bezeichner
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\Form1.h(22): error C2955: "System::Collections::Generic::List": Für die Verwendung der generic-Klasse ist eine generic-Argumentliste erforderlich.
    c:\program files (x86)\reference assemblies\microsoft\framework\.netframework\v4.0\mscorlib.dll: Siehe Deklaration von 'System::Collections::Generic::List'
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\Form1.h(22): error C2065: 'AntwortDaten': nichtdeklarierter Bezeichner
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\Form1.h(22): error C3845: "Prüfung::Form1::faecher": Nur statische Datenmember können innerhalb einer Verweisklasse oder eines Werttyps initialisiert werden.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\Form1.h(419): error C2061: Syntaxfehler: Bezeichner 'AntwortDaten'
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): Siehe Verweis auf die Instanziierung der gerade kompilierten Klassen-generic "System::Collections::Generic::List<T>".
    with
    [
    T=Correctus::Antwort
    ]
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): Siehe Verweis auf die Instanziierung der gerade kompilierten Klassen-generic "System::Collections::Generic::IList<T>".
    with
    [
    T=Correctus::Antwort
    ]
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): Siehe Verweis auf die Instanziierung der gerade kompilierten Klassen-generic "System::Collections::Generic::ICollection<T>".
    with
    [
    T=Correctus::Antwort
    ]
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): Siehe Verweis auf die Instanziierung der gerade kompilierten Klassen-generic "System::Collections::Generic::IEnumerable<T>".
    with
    [
    T=Correctus::Antwort
    ]
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "TInput" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "TInput" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "TInput" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C2691: "Correctus::Antwort": Ein verwaltetes Array darf nicht diesen Elementtyp aufweisen.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3265: Ein verwalteter 'antworten' kann nicht in einem nicht verwalteten 'Correctus::AntwortDaten' deklariert werden
    Eine globale oder statische Variable oder ein Member eines systemeigenen Typs, der auf Objekte im gc-Heap verweist, kann nicht deklariert werden.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C2864: "Correctus::AntwortDaten::antworten": Nur statische konstante integrale Datenmember können innerhalb einer Klasse initialisiert werden.
    AntwortDaten.cpp(13): error C2664: 'System::Collections::Generic::List<T>::Add': Konvertierung des Parameters 1 von 'Correctus::Antwort *' in 'Correctus::Antwort' nicht möglich
    with
    [
    T=Correctus::Antwort
    ]
    Kein benutzerdefinierter Konvertierungsoperator verfügbar, der diese Konvertierung durchführen kann, oder der Operator kann nicht aufgerufen werden
    AntwortDaten.cpp(14): error C2664: 'System::Collections::Generic::List<T>::Add': Konvertierung des Parameters 1 von 'Correctus::Antwort *' in 'Correctus::Antwort' nicht möglich
    with
    [
    T=Correctus::Antwort
    ]
    Kein benutzerdefinierter Konvertierungsoperator verfügbar, der diese Konvertierung durchführen kann, oder der Operator kann nicht aufgerufen werden
    AntwortDaten.cpp(15): error C2664: 'System::Collections::Generic::List<T>::Add': Konvertierung des Parameters 1 von 'Correctus::Antwort *' in 'Correctus::Antwort' nicht möglich
    with
    [
    T=Correctus::Antwort
    ]
    Kein benutzerdefinierter Konvertierungsoperator verfügbar, der diese Konvertierung durchführen kann, oder der Operator kann nicht aufgerufen werden
    AntwortDaten.cpp(16): error C2664: 'System::Collections::Generic::List<T>::Add': Konvertierung des Parameters 1 von 'Correctus::Antwort *' in 'Correctus::Antwort' nicht möglich
    with
    [
    T=Correctus::Antwort
    ]
    Kein benutzerdefinierter Konvertierungsoperator verfügbar, der diese Konvertierung durchführen kann, oder der Operator kann nicht aufgerufen werden
    AntwortDaten.cpp(17): error C2664: 'System::Collections::Generic::List<T>::Add': Konvertierung des Parameters 1 von 'Correctus::Antwort *' in 'Correctus::Antwort' nicht möglich
    with
    [
    T=Correctus::Antwort
    ]
    Kein benutzerdefinierter Konvertierungsoperator verfügbar, der diese Konvertierung durchführen kann, oder der Operator kann nicht aufgerufen werden
    Prüfung.cpp
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): Siehe Verweis auf die Instanziierung der gerade kompilierten Klassen-generic "System::Collections::Generic::List<T>".
    with
    [
    T=Correctus::Antwort
    ]
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): Siehe Verweis auf die Instanziierung der gerade kompilierten Klassen-generic "System::Collections::Generic::IList<T>".
    with
    [
    T=Correctus::Antwort
    ]
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): Siehe Verweis auf die Instanziierung der gerade kompilierten Klassen-generic "System::Collections::Generic::ICollection<T>".
    with
    [
    T=Correctus::Antwort
    ]
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): Siehe Verweis auf die Instanziierung der gerade kompilierten Klassen-generic "System::Collections::Generic::IEnumerable<T>".
    with
    [
    T=Correctus::Antwort
    ]
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "TInput" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "TInput" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "TInput" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C2691: "Correctus::Antwort": Ein verwaltetes Array darf nicht diesen Elementtyp aufweisen.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3225: Das generische Typargument für "T" kann nicht "Correctus::Antwort" sein, es muss ein Werttyp oder ein Handle für einen Referenztyp sein.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C3265: Ein verwalteter 'antworten' kann nicht in einem nicht verwalteten 'Correctus::AntwortDaten' deklariert werden
    Eine globale oder statische Variable oder ein Member eines systemeigenen Typs, der auf Objekte im gc-Heap verweist, kann nicht deklariert werden.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C2864: "Correctus::AntwortDaten::antworten": Nur statische konstante integrale Datenmember können innerhalb einer Klasse initialisiert werden.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\Form1.h(22): error C2065: 'AntwortDaten': nichtdeklarierter Bezeichner
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\Form1.h(22): error C2955: "System::Collections::Generic::List": Für die Verwendung der generic-Klasse ist eine generic-Argumentliste erforderlich.
    c:\program files (x86)\reference assemblies\microsoft\framework\.netframework\v4.0\mscorlib.dll: Siehe Deklaration von 'System::Collections::Generic::List'
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\Form1.h(22): error C2065: 'AntwortDaten': nichtdeklarierter Bezeichner
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\Form1.h(22): error C3845: "Prüfung::Form1::faecher": Nur statische Datenmember können innerhalb einer Verweisklasse oder eines Werttyps initialisiert werden.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\Form1.h(419): error C2061: Syntaxfehler: Bezeichner 'AntwortDaten'
    Code wird generiert...

    so, hab mal die fehlerliste ausgetauscht. das is die richtige



  • sorry, hatte vergessen in der header von antwortdaten die deklaration zu ändern. sieht trotzdem so katastrophal aus....



  • Es macht keinen Sinn C++/CLI und C++ zu mischen. Es bringt nur unnötige Probleme. Zu mischen macht dann Sinn, wenn es sich um einen Interop Layer handelt, was hier offensichtlich nicht der Fall ist.

    Desshlab geht meine Hilfe in Richtig "alles .NET zu machen".
    Ich habe das mal so angerissen. Packe die Klasse Antwort, AntwortDaten umbedingt in andere Header / Source Dateien (also nicht in der Datei von Form1).

    ref class Antwort
    {
    private:
       String^ antwort;
       bool    sichtbar;
    
    public:
       // .. set / get
    };
    
    ref class AntwortDaten
    {
    private:
       String^ fach;
       String^ pruefungsName;
       List<Antwort^>^ antworten;
    
    public:
       // ... set / get
    };
    
    ref class Form1 : public Form
    {
    private:
       List<AntwortDaten^>^ faecher;
    
    public:
       Form1()
       {
          InitializeComponents();
    
          faecher = gcnew List<AntwortDaten^>();
       }
    
       // ...
    };
    


  • entschuldige bitte, dass ich das nicht erwähnt hatte. die cpp/header sind alle unabhängig, da ich das oop gerne behalten wollte. ich kann dir das ja mal eben kurz komplett schicken, wenn du mir deine icq etc gibst... dann is es vllt klarer. is halt mein Prüfungsprojekt. und die prüfung is im sommer..



  • Wie theta schon geschrieben hat, du solltest alle deine Klassen "managed" machen, d.h.

    ref class Antwort // sowie "ref class Antwortdaten"
    {
      // ...
    }
    

    Und dann die List so definieren:

    List<AntwortDaten^>^ faecher;
    

    Das Verwenden von "nativen" Klassen und "managed" Collections geht nicht (du solltest auch Lernen Fehlermeldungen zu verstehen bzw. danach im Internet bzw. direkt in der MSDN zu suchen).

    Sollen deine Klassen "Antwort", "AntwortDaten" usw. dennoch reines C++ ("unmanaged"/ "native") sein, so mußt du die Daten von Hand in die Managed-Liste umkopieren (und dafür dann entsprechende managed-Klassen anlegen - also doppelte Arbeit!).



  • Ahhh. daher das ganze. also wenn Ich die Klassen mit "ref" kennzeichne, dann übernimmt das löschen der Carbarage Controller, wenn ich das jetzt richtig verstehe. was er ja sonst nicht machen würde...oder?

    Naja, aus der MSDN werd ich nich wirklich schlau. aus den Fehlermeldungen so halbwegs... ^^ Ich hab hier 4 Bücher vor mir liegen. eins is C# 2010 wegen den Funktionen mit Visual Studio. und der Rest is c++.

    einmal "Spielend C++ lernen", dann Visual C++ 2010 vonDirk Louis
    und zuguterletzt Einführung in die Programmierung mit C++ von Stroustrup.

    Ich weiß nicht so ganz ob die Kombi von Büchern Richtig ist. Ich hatte auch das vom mitp Verlag. Da hab ich schon ne Kriese bekommen als ich 2 elementare fehler gelesen habe... ^^ habs zurück gebracht...

    Ps:Die Liste muss ja dynamisch bleiben, da Immer neue Datensätze hinzu kommen können.



  • Generell ist C++/CLI zum programmieren Lernen sehr fragwürdig.
    Dann kommen noch die ganzen Bücher dazu, die C++/CLI als Sprache zur Applikations- Entwicklung propagieren - sehr schlecht. Und zu guter Letzt die Uni's und Schulen, die C++/CLI Kurse anbieten und nicht mal den Unterschied zwischen C++/CLI und C++ kennen. Grauenhaft.



  • Ich schreib mal die ganze Klasse Antwortdaten jetzt hier rein. Und die dazugehörigen Fehlermeldungen. Ich werd aus der Stelle, wo der Fehler sein soll nicht schlau....

    #pragma once
    #include "StdAfx.h"
    #include "Antwort.h"
    #include <iostream>
    using namespace System::Collections::Generic;
    using namespace std;
    
    namespace Correctus {
    	ref class AntwortDaten {
    	private:
    		String^ fach;
    		String^ pruefungsName;
    		List<Antwort^> ^antworten = gcnew List<Antwort^>(6);
    
    	public:
    		AntwortDaten();
    
    	};
    }
    

    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(12): error C2143: Syntaxfehler: Es fehlt ';' vor '^'
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(12): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(12): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(13): error C2143: Syntaxfehler: Es fehlt ';' vor '^'
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(13): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(13): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C2065: 'Antwort': nichtdeklarierter Bezeichner
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C2059: Syntaxfehler: '>'
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C2065: 'Antwort': nichtdeklarierter Bezeichner
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C2059: Syntaxfehler: '>'
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(19): error C2143: Syntaxfehler: Es fehlt ';' vor '}'
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(20): error C2143: Syntaxfehler: Es fehlt ';' vor '}'



  • theta schrieb:

    Generell ist C++/CLI zum programmieren Lernen sehr fragwürdig.
    Dann kommen noch die ganzen Bücher dazu, die C++/CLI als Sprache zur Applikations- Entwicklung propagieren - sehr schlecht. Und zu guter Letzt die Uni's und Schulen, die C++/CLI Kurse anbieten und nicht mal den Unterschied zwischen C++/CLI und C++ kennen. Grauenhaft.

    es ist ja nicht das Problem das zu lernen. Ich finde es nur schwerer.
    Das Buch "Spielend C++ lernen" ist sehr gut geschrieben und basiert auch auf c++ CLI. Problem ist, dass die Hauptdatei eine DLL ist und dort schon sehr viele Funktionen vorgearbeitet wurden. Ich denke, das Dass das Problem ist, weshalb man nicht soooo viel lernt... Ich muss dazu sagen, dass Ich Umschüler bin und dass Dieser Beruf mein Traumberuf ist... und ich dafür bereit bin alles dafür zu tun, dass ich ein guter Programmierer werde.



  • Probier mal using namespace System hinzuzufügen.
    Dafür kannst Du using namespace std getrost entfernen.



  • So, ausgetauscht ist. Nun liegen für die Klasse folgende Fehler vor. Alles andere beibehalten.

    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C2065: 'Antwort': nichtdeklarierter Bezeichner
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C2059: Syntaxfehler: '>'
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C2065: 'Antwort': nichtdeklarierter Bezeichner
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(14): error C2059: Syntaxfehler: '>'
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(19): error C2143: Syntaxfehler: Es fehlt ';' vor '}'
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(20): error C2143: Syntaxfehler: Es fehlt ';' vor '}'



  • Dann zeige mal den Inhalt von Antwort.h.
    Ist Antwort auch im Namespace Correctus?

    Edit
    #include <iostream> kannst Du auch entfernen.



  • #pragma once
    #include "StdAfx.h"
    using namespace std;
    
    namespace Correctus {
    ref class Antwort 
    {
    private:
    	String^ antwort;
    	bool^ sichtbar;
    
    public:
    	Antwort(string aw);
    
    	void abgehackt();
    	String^ getAntwort();
    	void setAntwort(String^ aw);
    };
    }
    

    und die dazugehörige cpp

    namespace Correctus {
    	Antwort::Antwort(String^ aw) {
    		antwort = aw;
    		sichtbar = true;
    	}
    
    	void Antwort::abgehackt() {
    		sichtbar = false;
    	}
    
    	String^ Antwort::getAntwort() {
    		return antwort;
    	}
    
    	void Antwort::setAntwort(String^ aw) {
    		antwort = aw;
    	}
    
     }
    

    hab gesehen. using namespace System hat gefehlt. dadurch sind aber andere fehler entstanden.



  • Die Deklaration des Antwort Konstruktors ist noch falsch:

    Antwort(string aw);
    

    ➡

    Antwort(String^ aw);
    

    Und auch using namespace System; nicht vergessen.

    Edit
    Und auch hier: Dafür kannst Du using namespace std getrost entfernen.



  • Hey, genau dass habe ich in der Zeit schon gemacht als du geschrieben hast ^^
    Die Klasse sieht nun so aus.

    #pragma once
    #include "StdAfx.h"
    using namespace System;
    
    namespace Correctus {
    ref class Antwort 
    {
    private:
    	String^ antwort;
    	bool^ sichtbar;
    
    public:
    	Antwort(String^ aw);
    
    	void abgehackt();
    	String^ getAntwort();
    	void setAntwort(String^ aw);
    };
    }
    

    und nun folgen die fehler. haben sich im übrigen schon sehr verringert.
    bleiben nur noch die aus der klasse und ei, aus der form über, welche sehr sehr viele sind. ^^

    Fehler:
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(13): error C3845: "Correctus::AntwortDaten::antworten": Nur statische Datenmember können innerhalb einer Verweisklasse oder eines Werttyps initialisiert werden.
    Prüfung.cpp
    c:\users\ajacobs\documents\visual studio 2010\projects\prüfung\prüfung\AntwortDaten.h(13): error C3845: "Correctus::AntwortDaten::antworten": Nur statische Datenmember können innerhalb einer Verweisklasse oder eines Werttyps initialisiert werden.



  • C++/CLI ist halt weder C++ noch C#, sondern eine eigene Sprache mit eigenen Regeln.

    Laut Fehlermeldung mußt du

    antworten = gcnew List<Antwort^>(6);
    

    in den Konstruktor reinschreiben (also hier verhält es sich mehr wie C++).



  • und warum ist das dann so??? ich versteh das grad nicht, warum das so ist. kann es sein, dass die definierung immer außerhalb einer funktion sein muss und die deklaration in dem konstruktor? hab jetzt lustigerweise nur noch Fehler in der Form1.h . Auf jedenfall schonmal ein gaaaanz GROOOOßES Danke 🙂


Anmelden zum Antworten