Callback-Funktion in Klassenhierarchie



  • Hey,
    ich hab zwar einige Beiträge dazu gelesen, aber aus irgend einem Grund klappt nix davon (Außer über zusätzlich abgeleitete Klassen, was aber zu umständlich ist).

    Folgendes Problem:
    Ein Objekt einer Klasse C_BB wird in der Klasse C_AA als Member eingebaut. Aus Klasse C_BB soll nun eine Funktion func aus Klasse C_AA aufgerufen werden.

    // aa.h                                           
    -------
    #include "bb.h"
    
    class C_AA {
      public:
        C_AA();
        void func(int i);   // [b]func[/b]
    
        C_BB bb;            // Eine Memberfunktion aus
                            // diesem Objekt soll
                            // [b]func[/b] auslösen
    };
    
    // aa.cpp                                          
    ---------
    
    #include "aa.h"
    
    C_AA::C_AA() {}
    
    void C_AA::func(int i) {
        // Tu irgendwas
    }
    
    // bb.h                                            
    -------
    
    class C_BB {
      public:
        C_BB();
        void blubb();
    };
    
    // bb.cpp                                          
    ---------
    
    #include "bb.h"
    
    C_BB::C_BB() {
    }
    
    void C_BB::blubb() {
      //  Hier soll [b]func[/b] aus [i]C_AA[/i] aufgerufen werden!
    }
    

    Kann irgendwer von euch den Quelltext so manipulieren (möglichst nicht zu viel Pseudo), dass ich func in blubb ausführen kann? Wie muss ich func zu einem Zeiger umbauen?

    Wär cool das mal als einheitliche Problematik zu betrachten. Thx Leutz.
    Gruß, sabre.



  • Hallo

    Du must der Klasse C_BB noch einen Pointer auf C_AA als Membervariable geben. Da wirst du nicht um Forward Declaration (wegen dem Kreuinclude sonst) und manuelle Initialisierungslisten (um bb in C_AA mit this zu initialiseren) herumkommen

    bis bald
    akari


Anmelden zum Antworten