Benutzer mit den meisten Antworten
gegenseitige objektverweise in klassen

Frage
-
hallo!
ich weiß nciht ob der titel günstig gewählt ist. folgende zeilen sollten das problem aber gut darstellen:
A.h
pragma once public ref class A { public: A(void) { } };
B.h
#pragma once #include "A.h" public ref class B { public: A^ a; B(void) { this->a = gcnew A(); } };
bis hier hin ist alles wunderbar.
nun möchte ich aber in klasse A auch gern ein objekt der klasse B halten und erweitere A.h wie folgt:
A.h
#pragma once #include "B.h" public ref class A { public: B^ b; A(void) { this->b = gcnew B(); } };
ab hier mag der compiler nicht mehr. was ist das problem?- Bearbeitet irieill Dienstag, 5. Januar 2010 15:07 naja muß jetz so reichen... keine lust mehr.
Antworten
-
Das ist ja auch ein ziemlich unmöglich oder?
Du erzeugst ein Objekt A, dieses Objekt erzeugt nun ein Object B intern, dieses wiederum erzeugt ein Object A welches wiederum ein Object B erzeugt.
Wie soll das gehen.
Ansonsten kannst Du sicherlich eine Referenz intern halten, aber in keinem Fall die Objekte im Konstruktor erzeugen.
Du benötigst evtl. eine Voraus Deklaration:
public ref class A; public ref class B;
Martin Richter -- MVP for VC++ [Germany] -- http://blog.m-ri.de- Als Antwort vorgeschlagen Martin RichterModerator Dienstag, 5. Januar 2010 16:31
- Als Antwort markiert irieill Dienstag, 5. Januar 2010 17:05
Alle Antworten
-
Das ist ja auch ein ziemlich unmöglich oder?
Du erzeugst ein Objekt A, dieses Objekt erzeugt nun ein Object B intern, dieses wiederum erzeugt ein Object A welches wiederum ein Object B erzeugt.
Wie soll das gehen.
Ansonsten kannst Du sicherlich eine Referenz intern halten, aber in keinem Fall die Objekte im Konstruktor erzeugen.
Du benötigst evtl. eine Voraus Deklaration:
public ref class A; public ref class B;
Martin Richter -- MVP for VC++ [Germany] -- http://blog.m-ri.de- Als Antwort vorgeschlagen Martin RichterModerator Dienstag, 5. Januar 2010 16:31
- Als Antwort markiert irieill Dienstag, 5. Januar 2010 17:05