Alte virtuelle Funktion aufrufen
-
Hallo,
ich möchte eine virtuelle Funktion der Basisklasse neu definieren, aber die Basisdefinition trotzdem nutzen.Beispiel:
class CBase { public: virtual void TestVirtual() { cout << "CBase"; } }; class CDerived : public CBase { public: virtual void TestVirtual() { cout << "CDerived"; } void TestBase() { dynamic_cast<CBase*>(this)->TestVirtual(); } }; int main() { CDerived test; test.TestVirtual(); // Gibt CDerived aus test.TestBase(); // Gibt wieder CDerived aus return 0; }Leider wird mir beidesmal CDerived ausgegeben. Ist mein Vorhaben überhaupt möglich?
MfG,
Max
-
Statt Zeile 11: cBase::TestVirtual();
-
Perfekt! Danke!