Логичнее наверное сперва удалить всех потомков, потом только удалиться самому? Почему так?
А так и происходит. Вызывается ваш деструктор A, который пишет сообщение, только потом вызывается деструктор QObject, который освобождает детей.
Все верно, запутался - думал порядок как и с классическим наследованием
Пример без QObject. Два класса - A, B (наследуется от А), на следующем коде:
C++ (Qt)
B *b = new B();
delete b;
Порядок симметричный:
A-Constructor
B-Constructor
B-Destructor
A-Destructor
Если бы А наследовался от QObject, значит дальше бы пошли деструкторы от чайлдов.