Wie kann eine Unterklasse Aufruf einer Methode der Superklasse, die mit der gleichen Methode name der Unterklasse?
#include <iostream>
using namespace std;
class Person {
public:
void sing();
};
class Child : public Person {
public:
void sing();
};
Person::sing() {
cout << "Raindrops keep falling on my head..." << endl;
}
Child::sing() {
cout << "London bridge is falling down..." << endl;
}
int main() {
Child suzie;
suzie.sing(); //I want to know how I can call the Person's method of sing here!
return 0;
}
mögliche Duplikate von Wie nennen Basisklassenmethode durch die Basisklasse Zeiger auf abgeleitete Klasse, Aufruf der virtuellen Methode aus der Basisklasse auf ein Objekt der abgeleiteten Typ.
InformationsquelleAutor Rick | 2011-06-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Person& sue = suzie; sue.sing();
.oder
static_cast<Person&>(suzie).sing();
oder jeglicher variation davon, ja.Ich schrieb, und dann entfernt es. Ich versuchen, verwenden Sie NIEMALS eine Besetzung, wo eine implizite Konvertierung funktioniert.
InformationsquelleAutor James McNellis
Kann das Kind verwenden Sie Person::anmelden().
Sehen http://bobobobo.wordpress.com/2009/05/20/equivalent-of-keyword-base-in-c/ für eine gute Erklärung.
InformationsquelleAutor Richard Schneider