C++ ist es möglich, eine Klasse erweitern eine Klasse und eine Realisierung einer Schnittstelle zur gleichen Zeit?
Coluld Sie bieten ein einfaches code-Beispiel? (sorry C++ - nube und so rufen Sie eine Funktion aus der Klasse, die Sie erweitern?
- Könnten Sie etwas konkreter über das, was Sie erreichen wollen ? Wollen Sie eine Methode überladen und den Aufruf der parent-version der Methode oder rufen Sie eine geerbte Methode ?
- Bitte klären Sie Ihre Frage. Was wollen Sie erreichen? Hast du eine Angabe, die Sie haben zu fulfull? Bitte kopieren-einfügen. Seien Sie so spezifisch wie möglich, damit andere verstehen können, Ihr problem, also bekommen Sie auch die Möglichkeit, um Ihnen eine sinnvolle Antwort.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Etwas nützliches Beispiel: 🙂
In C++, Sie können Sie erweitern, mehrere Klassen, es heißt Mehrfachvererbung. Wahrscheinlich ist dies, was Sie suchen. Bitte Lesen Sie ein gutes Buch über multiple Vererbung und C++ (eine kurze Einführung: http://publib.boulder.ibm.com/infocenter/comphelp/v8v101/index.jsp?topic=%2Fcom.ibm.xlcpp8a.doc%2Flanguage%2Fref%2Fcplr134.htm), denn es gibt viele Fallstricke und details zu achten.
Beispiel für mehrfache Vererbung:
C++ nicht explizit Schnittstellen, das entspricht einer Schnittstelle in Java ist in der Regel umgesetzt mit einer Klasse, die nur rein virtuelle Funktionen (plus Konstruktoren, Destruktor, copy-Zuweisung):
Nicht sicher, was Sie Fragen:
Beachten Sie, dass mehrfache Vererbung kann dazu führen, wirklich schwer zu lösende Probleme, und ich würde empfehlen, nur verwenden Sie es, wenn nötig.
interfaces
imC++
. Sie können jedoch mehrfache Vererbung, aber man muss wirklich sehr vorsichtig.Sich die Frage, wie angegeben,
macht nicht viel Sinn. Die Antwort ist einfach "ja". Sie ergeben sich aus einer beliebigen Anzahl von Klassen: C++ voll unterstützt Mehrfachvererbung.
So, da die Frage wie gesagt nicht wirklich aussagekräftig, es ist zumindest möglich, dass Sie gemeint Fragen
Die Antwort auf diese Frage ist ja auch, aber es ist nicht trivial. Es beinhaltet virtuelle Vererbung. Das ist ziemlich heikel.
Hier ein Beispiel:
Die virtuelle Vererbung sorgt dafür, dass es nur eine sub-Objekt vom Typ
TalkerInterface
imMyClass
Instanz. Dies hat einige Kontra-intuitiv Folgen. Einer ist, dass "Erben in einer Implementierung arbeitet", und ein anderer ist, dass der Bau der Basisklasse sub-Objekt passiert, nach unten in jederMyClass
Konstruktor, und mehr im Allgemeinen nach unten in die abgeleitete Klasse.Cheers & hth.,