Все-таки заменил на членство (агрегирование). СDeformer может быть только один (у одного CGroup) и его не может не быть - ну вроде бы наследование. Но тут неприятный эффект, пример
C++ (Qt)
Container * CDeformer::GetVertexList( void );
А у CGroup немало всяких VertexList помимо деформера, пришлось раздувать имена (GetDeformerVertexList). Также получается что подавляющее большинство методов СDeformer'а - чистые виртуалы, без CGroup он практически нулевой. А вот данные-члены у него свои, и приличные.
В общем "настоять" на наследовании конечно можно, но как-то смысла не видно. Мда...