Oberste Klasse in der Hierachie?



  • Hallo,

    aus Java oder Delphi kenn ich die Situation, dass Object bzw. TObject die obersten Klassen darstellen, von denen alle ableiten.
    Wie ist das in C++, welchen Klassentyp kann ich da nehmen, wenn ich den allgemeinsten benutzen möchte?

    In Java hätte ich z.B. für das Observer-Model solch eine Methode

    void NotifyObservers(Object sender) {...}
    

    Wie mache ich das in C++? Vielleicht mittels void?

    void NotifyObservers(void *sender) {...}
    

    Danke!



  • In C++ gibt es keine "Oberklasse", die musst du dir schon selber machen

    class CAlles
    {
    public:
        virtual void tue_was_ganz_tolles() = 0;
    };
    //......
    void Notify(CAlles *sender);
    


  • In C++ ist es üblicher, dafür Templates zu verwenden. Die compilieren dann einfach nicht, wenn der Typ die geforderte Schnittstelle nicht erfüllt.

    template< typename T >
    void NotifyObservers( T& receiver )
    {
        receiver.TuWasGanzTolles();
    }
    

Anmelden zum Antworten