#include-Problem



  • Ich habe ein ganz simples Problem :

    Die Objekte zwei verschiedener Klassen sollen gegenseitig mit einem Zeiger auf sich zeigen. Um den Zeiger zu deklarieren zu können, muss ich die jeweils andere Klasse includen.

    Der Compiler meckert wahrscheinlich, weil er in eine Endlos-Schleife gerät. Ich habe schon mit #ifndef rumgespielt, komme aber zu keiner Lösung. 😕

    Was muss ich tun, um das in den Griff zu kriegen ? 🙄



  • Hi,

    eine Vorwaertsdeklaration sollte dir Abhilfe schaffen:

    //header class1
    
    class Klasse2;
    
    class Klasse1
    {
        Klasse2 *Obj;
    };
    
    //header class2
    
    class Klasse1;
    
    class Klasse2
    {
       Klasse1 *Obj;
    };
    

    mfg
    v R

    PS: Wenn ich mich nich irre, stand schon was dazu in der FAQ



  • genau: #include
    und: Objekt in Objekt

    alles schonmal da. 🙂



  • Ihr seid die besten 🙂 🙂 🙂
    Viielen Dank.



  • warum geht das nur mit zeigern? wie kann ich folgendes problem lösen:

    class B;
    
    class A
    {
    public:
        A(void);
        ~A(void);
    
    public:
        B m_Test;
    };
    
    class A;
    
    class B
    {
    public:
        B(void);
        ~B(void);
    
    public:
        A m_Test;
    };
    

    😕 😕 😕



  • du kannst nicht 2 objekten den gleichen namen geben



  • Er gibt hier nirgends 2 Objekten den gleichen Namen. Er hat nur Member mit dem gleichen Namen, was beim ´zugriff auf Mehrdeutigkeit stossen wird.

    @virtuell Realisticer

    class B;
    
    class A
    {
    public:
        A(void);
        ~A(void);
    
    public:
        B m_Test;
    };
    

    Es geht nur mit Zeiger oder Referenzen da der Compiler sonst wissen muss wie Klasse B genau aussieht. Und diese kennt er ja noch nicht da diese erst weiter unten bekannt gemacht wird. (Er muss wissen u.a. wieviel speicher das ganze verbraucht)

    Bei Zeigern ist das dem Compiler egal, da reicht ihm die zusicherung das es diesen Typ gibt. Ein Zeiger sieht eigentlich immer gleich aus egal von welchen Typ er ist.



  • Jo weiss ich, aber der Code da is nich von mir 😉

    mfg
    v R



  • Ups...

    Sorry, das sollte natürlich an @ confused ghehen.

    *pfeif* *unschuldig schau*





  • @confused:

    stell dir mal vor:

    Du hast einen würfel, und in diesem würfel ist eine pyramide.

    Würfel ist deine Klasse A und Pyramide deine Klasse B.

    A hat ein B und B hat ein A

    Nun haben wir einen Würfel, indem eine Pyramide ist. In der Pyramide ist ein Würfel. In dem Würfel ist eine Pyramide. In der Pyramide ist ein Würfel. In dem Würfel ist eine Pyramide. In der Pyramide ist ein Würfel. In dem Würfel ist eine Pyramide. In der Pyramide ist ein Würfel. In dem Würfel ist eine Pyramide. In der Pyramide ist ein Würfel. In dem Würfel ist eine Pyramide. In der Pyramide ist ein Würfel. In dem Würfel ist eine Pyramide. In der Pyramide ist ein Würfel. In dem Würfel ist eine Pyramide. In der Pyramide ist ein Würfel. In dem Würfel ist eine Pyramide...

    verstehst du das Problem?



  • Nun haben wir einen Würfel, indem eine Pyramide ist. In der Pyramide ist ein Würfel. In dem Würfel ist eine Pyramide. In der Pyramide ist ein Würfel. In dem Würfel ist eine Pyramide. In der Pyramide ist ein Würfel. In dem Würfel ist eine Pyramide. In der Pyramide ist ein Würfel. In dem Würfel ist eine Pyramide. In der Pyramide ist ein Würfel. In dem Würfel ist eine Pyramide. In der Pyramide ist ein Würfel. In dem Würfel ist eine Pyramide. In der Pyramide ist ein Würfel. In dem Würfel ist eine Pyramide. In der Pyramide ist ein Würfel. In dem Würfel ist eine Pyramide...

    wie langweilig... 🙄



  • Na wenn Dir das zu langweilig ist, versuch den letzten Würfel in der Pyramide zu finden ;o)


Anmelden zum Antworten