Standard-Implementierung von "pure virtual" nicht vererbt?
-
Nicht unbedingt:
class Parent {}; class Control {}; class Panel : public virtual Control, protected virtual Parent {}; class MyPanel : public Panel { MyPanel() {} // ok };
-
dot schrieb:
Nicht unbedingt:
class Parent {}; class Control {}; class Panel : public virtual Control, protected virtual Parent {}; class MyPanel : public Panel { MyPanel() {} // ok };
Das wäre allerdings auch mit private-Vererbung ok.
-
Oha, stimmt, dann muss ich wohl einen anderen Grund für das protected gehabt haben, den ich nun leider vergessen hab...
Edit: Der Grund war wohl, dass abgeleitete Klassen sonst keine Methoden des Interface überschreiben können...
Edit 2: Wobei die natürlich auch einfach nochmal von Parent erben könnten...
-
dot schrieb:
Edit: Der Grund war wohl, dass abgeleitete Klassen sonst keine Methoden des Interface überschreiben können...
Das ist auch nicht der Fall
-
Ok, dann hab ich offiziell keine Ahnung mehr, wieso ich da protected abgeleitet hab, irgendeinen Grund gabs jedenfalls, möglicherweise ist der mittlerweile aber verschwunden...
-
...
-
Decimad schrieb:
Ich habe ja mit keinem Wort gesagt, dass der Gedankengang Ich habe nur nachzuvollziehen versucht, weshalb jemand auf dem pure virtual beharren möchte, trotz der Tatsache, dass er eine Standardimplementierung geben möchte!
Tachyon schrieb:
Das wird aber in Effective C++ sogar explizit als Methode empfohlen, eine Standardimplementierung zur Verfügung zu stellen. Mit dem Vorzug, dass der Erbende noch mal drüber nachdenken muss, ob die Standardimplementierung wirklich dass ist, was gewollt wird.
[...]
Bevor ihr euch hier weiter den Kopf zerbrecht: Es handelt sich um ein sehr altes (nicht mein) SDK, was ich nutzen möchte ohne (!) es zu verändern. Vermutlich war das schlichtweg entweder ein Versehen, oder Unwissenheit oder Genialität. Fakt ist, dass aktuelle Compiler da nicht mitmachen. Deswegen meine Frage.
Ich hätte nicht gedacht, dass meine einfache Frage so eine Diskussion auslöst. Das war nicht beabsichtigt.
Edit: Irgendwie komme ich mit der Forum Syntax nicht klar.