А как же ответственность родителя за дочерние объекты?
родитель, не обязан знать о своих производных.
читайте паттерны Абстрактная_Фабрика и Строитель.
Весь вопрос в том, кто отвечает за удаление объекта. Если родитель должен отвечать за удаление потомков (как это делается в Qt), то он обязан о них знать.
Абстрактная_Фабрика - полиморфная иерархия в чистом виде. Ничего общего с отношением "родитель-потомок", используемым в Qt нету. Весь смысл в том, что экземпляр базового класса вообще не создается, а используется только его интерфейс. В примере для Абстрактной_Фабрики нет никакого каскадного удаления потомков; объекты, созданные в куче, удаляются явно.
Кстате, в примере про Абстрактную фабрику допущена ошибка, которая в перспективе может привести к трудноотслеживаемой утечке памяти...(какая?
)