Pimpl: Verständisproblem bei Vererbung



  • ...


  • Mod

    codejunkie schrieb:

    - Wieso tritt dieses Verhalten auf?

    ReferenceCounter::d_ und Foobar::d_ haben nichts miteinander zu tun, und nirgendwo führst du ein delete auf Foobar::d_ durch, folglich ist auch kein entsprechender Destruktoraufruf zu sehen.

    codejunkie schrieb:

    - Wie muss ich den Code-Anpassen für das "korrekte" Verhalten?

    Es ist nicht ganz klar, was überhaupt modelliert werden soll, jedenfalls ist es relativ seltsam, eine besitzende Klasse zu haben, die LSP-Vererbung einsetzt als auch eine zugehörige Implementation, die diese benutzt. Mir fällt hierfür kein sinnvolles Anwendungsbeispiel ein (multiple dispatch vielleicht, aber das ist eine andere Art von Baustelle).
    addReference+release haben ja völlig verschiedene Bedeutungen, ja nach dem auf welches Objekt sie sich beziehen - auch wenn der Code strukturell identisch aufgebaut ist, ist das daher kein Fall für Vererbung. Ein Template könnte hingegen genutzt werden, um Codeduplikation zu vermeiden (CRTP bietet sich an).


Log in to reply