Geerbte Methode ändern



  • Wie kann ich bei einer geerbten Methode etwas hinzufügen, ohne die ganze Methode neu zu schreiben.

    Mir fehlt nur wie ich die Methode in der Vaterklasse aufrufen kann. (Unter Delphi gibts da das Schlüsselwort "inherited")

    Beispiel:

    bool TglButton::OnDraw(TUIManager* uimanager)
    {
    	if (!stayPressed)
    	{
    		Uint32 actTime = SDL_GetTicks();
    		if (actTime - clickTime >= 50)
    			setPressed(false);
    	};
    
    	return ((TglObject*)this)->OnDraw(uimanager);
    };
    

    Die letzte Zeile bewirkt, dass mein Programm in einer Endlosschleife hängen bleibt. Wie kann ich ihn zwingen in die OnDraw() Megthode des Vorgängers zu gehen, und nicht die der aktuellen Klasse zu benutzen?



  • Einfach so:

    return Base::OnDraw(uimanager);
    

    Wbei Base der Name Deiner Basisklasse sein sollte, von der Du die Methode aufrufen möchtest.

    MfG Jester



  • Danke 👍


Anmelden zum Antworten