Aber wenn Du von TDerivedClass ableitest, kannst Du auch vergessen, die InternalCleanUp zu überschreiben.
warum muss in meiner abgeleiteten Klasse die Methode die aufräumt auch unbedingt InternalCleanUp heißen?
Das aufräumen zu vergessen ist immer ein Problem - auch wenn Du ein internalCleanUp hast kannst Du eine intern initialisierte Klasse vergessen. Ich kann nicht ganz nachvollziehen wie du das vermeiden willst.