Kleine Frage zu abstrakten Klassen



  • Machen public Konstruktoren bei abstrakten Klassen überhaupt Sinn oder sollte man sie generell protected machen?



  • Da du eh keine instanz einer abstrakten Klasse direkt erzeugen kannst, kann auch niemand ausser den abgeleiteten Klassen den Konstruktor aufrufen, von daher ists wurscht. Ein protected Konstruktor springt denke ich weniger ins Auge als pure virtual methoden, von daher gibts auch keinen Warneffekt fuer den Leser. Und ob der Kompiler sich ueber Initialisierung einer abstrakten Lkasse oder nutzung des protected Konstruktors beschwert ist am Ende auch fast egal, am Ende wuerde ich ersteres Vorziehen, weils der wirkliche Grund ist.



  • pumuckl schrieb:

    ...Ein protected Konstruktor springt denke ich weniger ins Auge als pure virtual methoden, ...

    Ich hatte das nicht so verstanden, dass er das Eine tun und das Andere lassen wollte. Es klang mir mehr nach: "Wenn ich sowieso pure virtual functions habe ... kann ich dann den Konstruktor nicht auch gleich protected machen ?"

    Gruß,

    Simon2.



  • Die Frage hat pumuckl trotzdem schon im ersten Satz beantwortet.


Anmelden zum Antworten