Seltsame Deklaration - "virtual class..."



  • Hallo,

    bin schon seit ein paar Jahren dabei, aber so etwas hab ich noch nicht gesehen:

    class A {
    public:
    virtual class Element* getElement();
    .....
    }

    Kann mir da einer helfen??



  • Ich bin mir nicht mehr ganz sicher, aber ich glaube, daß es mit dem Schlüsselwort "virtual" möglich ist, die Funktion (in Deinem Fall "getElement()") bei einer abgeleiteten Klasse von "A" zu überschreiben. Wenn Du also eine Klasse "B" deklarieren würdest, könntest Du eine Funktion mit dem selben Namen und der selben Anzahl an Übergabewerten (in Deinem Fall keine) deklarieren.



  • das ist eine normale virtuelle Funktion, deren Rückgabetyp 'class Element*' ist. Statt 'class Element' könnte man auch 'Element' schreiben, aber nur, wenn die Klasse vorher schon bekannt ist. Indem man den ausführlichen Typ hinschreibt, macht man gleichzeitig eine Voraus-Deklaration der Klasse.



  • Danke für eure Antworten 🙂

    Hab selber noch ein bisschen im Internet gestöbert und ein paar Kollegen gefragt, die mir bestätigt haben, dass man sich somit die Vorausdeklaration sparen kann.

    Schönen Tag noch....


Anmelden zum Antworten