Sagen, ich habe Klassen Foo
und Bar
wie folgt aufgebaut:Kann ich die virtuelle Funktion einer Basisklasse aufrufen, wenn ich sie außer Kraft setze?
class Foo
{
public:
int x;
virtual void printStuff()
{
std::cout << x << std::endl;
}
};
class Bar : public Foo
{
public:
int y;
void printStuff()
{
// I would like to call Foo.printStuff() here...
std::cout << y << std::endl;
}
};
Wie im Code kommentierte, würde Ich mag die Basisklasse Funktion in der Lage sein zu nennen, die ich überschreiben bin. In Java gibt es die super.funcname()
Syntax. Ist das in C++ möglich?
möglich Duplikat von [virtuellen Funktionsaufruf von der Basisklasse] (http://stackoverflow.com/questions/397404/virtual-function-call-from-base-class) –
Für Googler: beachten Sie, dass Sie Probleme haben mögen Ich habe es als eine Klassenmitgliedsvariable gespeichert, die kein Zeiger ist. Siehe meine Antwort hier: http: // stackoverflow.com/questions/4798966/c-Aufruf-komplett-falsch-virtuelle-Methode-eines-Objekts/42429076 # 42429076 Ich beteiligt neue/löschen, um zu beheben. – Andrew