tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
5
ZUGRIFFE
815
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    ernii ernii ist offline Mitglied Silber
    Registriert seit
    Jan 2002
    Beiträge
    54
    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

  2. #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

  3. #3
    Maximka Maximka ist offline Mitglied Gold
    Registriert seit
    Jan 2002
    Ort
    Berlin
    Beiträge
    106
    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!

  4. #4
    ernii ernii ist offline Mitglied Silber
    Registriert seit
    Jan 2002
    Beiträge
    54
    jaja .. die fehler die man so im Leben macht . ...

    danke auf jedenfall so funktionierts ..

    cu
     
    wissen ist macht
    nichts wissen macht nichts

  5. #5
    Avatar von canuzzi
    canuzzi canuzzi ist offline Mitglied Gold
    Registriert seit
    Oct 2003
    Ort
    Wien
    Beiträge
    164
    die vorwaertsdeklaration haette auch gereicht
     

  6. #6
    Maximka Maximka ist offline Mitglied Gold
    Registriert seit
    Jan 2002
    Ort
    Berlin
    Beiträge
    106
    die vorwaertsdeklaration haette auch gereicht
    das ist nicht richtig,
    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

  1. URL rewrite umgekehrt
    Von hoctar im Forum Hosting & Webserver
    Antworten: 3
    Letzter Beitrag: 07.02.10, 17:39
  2. form aus anderer klasse ansprechen und umgekehrt.
    Von andralin im Forum .NET Application und Service Design
    Antworten: 2
    Letzter Beitrag: 20.10.08, 09:35
  3. C# zu VB.net, und umgekehrt..
    Von Alexander Schuc im Forum .NET Café
    Antworten: 3
    Letzter Beitrag: 02.04.08, 15:40
  4. Like funktion umgekehrt
    Von EddieG im Forum PHP
    Antworten: 3
    Letzter Beitrag: 22.02.08, 21:10
  5. hex in dez und umgekehrt konvertieren
    Von bspainkf36 im Forum PHP
    Antworten: 2
    Letzter Beitrag: 27.01.04, 11:14