ref Klassen miteinander verbinden ?
-
Hallo,
ich bin grad dabei mein erstes Programm in .Net zu entwickeln, allerdings habe ich noch ein paar Probleme.
Ich möchte eine Klasse in eine andere Klasse inkludieren, aber ich kriege nur Fehlermeldungen. D.h. die Klasse CVerbinden soll in der Klasse CBearbeiten zur Verfügung stehen.Normalerweise müsste doch die Erstellung mit
CKlassenname ^NeueKlasse = gcnew CKlassenname ;
reichen, oder???!!!#pragma once namespace XYZ { using namespace System; ... weitere ref struct srctBenutzerDaten { String ^m_sBenutzername; String ^m_sPasswort; }; ref class CVerbinden; ref class CBearbeiten { public: public : void StartFunktion() { // Fehler !!!! CVerbinden ^verb= gcnew CVerbinden(); } srctBenutzerDaten m_srctBenutzerDaten; }; ref class CVerbinden { public: void AlleKalenderAnzeigen() { //Anweisung } static String ^userName ; }; }; // Ende namespace XYZ
Fehler XYZ::CVerbinden : no appropriate default constructor available
-
Wenn du statt code-tags C++-tags verwendest, wird Syntax-Highlighting angewendet und das Ganze sieht noch schöner aus.
-
Du musst die *Implementierung* in der cpp-Datei machen und *beiden* h-Dateien der beiden Klassen _vorher_ einbinden!
Sonst geht da nie, da Du zirkuläre Referenzen hast, die der Kompiler nicht auflösen kann.
Forward deklarationen kann man nur bei einer Deklaration verwenden, nicht aber um Methode aufzurufen oder eine Instanz zu erzeugen!
-
ich hatte gehofft, das würde so irgendwie gehen, schade.
Aber ich werd's dann in der .cpp implementierenDanke