ERLEDIGT
NEIN
NEIN
ANTWORTEN
5
5
ZUGRIFFE
815
815
EMPFEHLEN
-
Hallo
ich bin eigentlich gerade viel zu müde um über soetwas nach zudenken aber mir fällt gerade einfach nicht ein wie man das vernünftig macht ...
Falls es schon einen thread dazu gibt war des keine absicht ... hab beim suchen nichts gefunden aber mir viel auch kein vernünftiger Suchbegriff ein.
Also ich möchte ungefähr folgendes machen:
Code :1 2 3 4 5 6 7 8
Class KlasseA { KlasseB child; }; Class KlasseB { KlasseA parent; };
Nunja das geht natürlich nicht ... bei KlasseA kennt der Compiler KlasseB noch garnicht und meckert das er den typ nicht kennt ....
Mir scheint so als würde dieses Problem dauernd vorkommen (naja zumindest öfters) also sollte es doch eine tolle Standartlösung geben. Oder will nur ich so komische Klassenkontruktionen fabrizieren?
Ich erinnere mich auch öfter mal das selbe Problem in Delphi gehabt zu haben.
Dort hab ich das Problem meist so gelöst, dass z.B. child als einen typenlosen Pointer genommen haben und in der Implementation der Funktion (dann ist die KlasseB ja bekannt) einen Typecast gemacht habe um es entsprechend zu benutzen .... aber das ist natürlich nicht typensicher ... (ok der Hauptgrund warum ich es jetzt nicht benutze ist das ich unter C++ mit den Zeigern noch nicht ganz so sicher bin und es einfach nicht hinbekommen habe ....
)
Also ich würd mich freuen wenn mir da jemand weiter helfen könnte und wünsche ansonsten noch gut nacht ...wissen ist macht
nichts wissen macht nichts
-
24.10.03 02:46 #2
- Registriert seit
- Nov 2001
- Ort
- Gießen
- Beiträge
- 4.091
Hi,
ich bin nicht so ganz sicher, ob das alles richtig ist, was ich jetzt von mir gebe - aber hast Du schonmal versucht, mit einer Vorwärtsdeklaration die Typen schon vor der "Implementierung" bekannt zu machen?
Aber trotzdem hast Du unter Umständen das Problem, dass die beiden Klassen sich gegenseitig immer wieder aufrufen können, wenn ich das richtig sehe.
Gruss, Dario"You could say that I was too lazy to calculate and so I invented the computer." -- Konrad Zuse
-
Das Problem loesst man mit Pointern,
denn wenn ich das richtig sehe willst Du einen Baum erstellen oder so aehnlich,
dann wuerden dir die Kopien von child und parent wenig nutzen.
Code :1 2 3 4 5 6 7 8 9 10 11 12
class KlasseA; [COLOR=seagreen]// Vorwaertsdeklaration von KlasseA, muss nicht sein[/COLOR] class KlasseB; [COLOR=seagreen]// Vorwaertsdeklaration von KlasseB[/COLOR] class KlasseA { KlasseB* child; }; class KlasseB { KlasseA* parent; };Have a nice day!
-
jaja .. die fehler die man so im Leben macht
. ...
danke auf jedenfall so funktionierts ..
cuwissen ist macht
nichts wissen macht nichts
-
die vorwaertsdeklaration haette auch gereicht
-
das ist nicht richtig,die vorwaertsdeklaration haette auch gereicht
denn um ein member erstellen zu koennen muss der Kompiler wissen wie gross dieses ist um den Speicher reservieren zu koennen.
Mit einer Vorwaertsdeklaration kennt der Kompiler die tatsaechliche Groesse einer Instance von der Klasse nicht.
Also wuerde eine Vorwaertsdeklaration nicht reichen.Have a nice day!
Ähnliche Themen
-
URL rewrite umgekehrt
Von hoctar im Forum Hosting & WebserverAntworten: 3Letzter Beitrag: 07.02.10, 17:39 -
form aus anderer klasse ansprechen und umgekehrt.
Von andralin im Forum .NET Application und Service DesignAntworten: 2Letzter Beitrag: 20.10.08, 09:35 -
C# zu VB.net, und umgekehrt..
Von Alexander Schuc im Forum .NET CaféAntworten: 3Letzter Beitrag: 02.04.08, 15:40 -
Like funktion umgekehrt
Von EddieG im Forum PHPAntworten: 3Letzter Beitrag: 22.02.08, 21:10 -
hex in dez und umgekehrt konvertieren
Von bspainkf36 im Forum PHPAntworten: 2Letzter Beitrag: 27.01.04, 11:14





Zitieren
Login






