class Base {
public:
virtual void f();
void f(int);
virtual ~Base();
};
class Derived : public Base {
public:
void f();
};
int main()
{
Derived *ptr = new Derived;
ptr->f(1);
delete ptr;
return 0;
}
ptr-> f (1); zeigt den folgenden Fehler: "zu viele Argumente in Funktionsaufruf".Polymorphismus in C++ Warum funktioniert das nicht?
Warum ist das nicht möglich? ist nicht abgeleitet alle Funktionen geerbt geerbt und ist frei, eine von ihnen zu verwenden? Ich könnte es explizit nennen und es würde funktionieren, aber warum ist das nicht erlaubt?
'f (int)' ist nicht in 'abgeleitet' überladen, was erwartest du? – SingerOfTheFall
Für Polymorphismus sollte 'ptr' ein Zeiger auf die * base * Klasse sein. –
Aber sollte nicht Abgeleitet die Base-Funktionen erben? oder es funktioniert nicht mit Zeigern? – Dannz