Wir können kein Objekt einer abstrakten Klasse erstellen, oder? Wie kann ich also eine virtuelle Funktion aufrufen, die sowohl in der abstrakten Basisklasse als auch in der abgeleiteten Klasse definiert ist? Ich möchte den Code in der abstrakten Basisklasse ausführen, aber momentan verwende ich das Objekt der abgeleiteten Klasse.Wie kann ich virtuelle Funktionsdefinition der Basisklasse aufrufen, die Definitionen sowohl in der abstrakten Basisklasse als auch in der abgeleiteten Klasse in C++ haben?
class T
{
public:
virtual int f1()=0;
virtual int f2() { a = 5; return a }
}
class DT : public T
{
public:
int f1() { return 10; }
int f2() { return 4; }
}
int main()
{
T *t;
t = new DT();
............
}
Gibt es eine Möglichkeit, die Basisklasse Funktion mit dem Objekt t aufrufen? Wenn es nicht möglich ist, was muss ich tun, um die Basisklassenfunktion aufzurufen?
Wie ein Minimal, komplett erstellen und prüfbare Beispiel http://stackoverflow.com/ help/mcve –
@RichardCritten Nützlich im Allgemeinen, aber um fair zu sein, ist die OP-Beschreibung des Codes gut genug, um zu verstehen, wie sie ist. – Angew