Fragen zu Vererbung, virtuellen Funktionen und Methodenaufruf der Basisklasse durch Pointer
-
Hallo.
Ich habe ein Problem mit der Vererbung unter C++:Class Base { protected : virtual int met1() = 0 int met2() { //do something } } Class derived : private Base { derived(); ~derived(); virtual int met1() { //do something } }main.cpp
int main() { derived* der = new derived(); // works der->met1(); //doesn't work der->met2(); return 1; }Dazu habe ich 2 Fragen:
1.) Die Methode met1() ist also nur in der Basisklasse vorhanden und wird vererbt. Leider kann ich darauf nicht über einen Pointer zugreifen [der->met2();]. Wie bekomme ich das hin?
2.)
Muss ich die virtuellen Funktionsprimitive der Bsisklasse (hier met1()) zusätzlich noch einmal in der header-datei der abgeleiteten Klasse aufführen, oder reicht es diese in der source-datei einfach zu implementieren? - Wenn ja, wie geht das (ich bekomme einen Compilerfehler, wenn sie nicht nochmal in der Headerdatei auftauchen...Danke

-
...
-
Dankeschön für diese wunderschöne Erklärung!
