@tomy Just my 2 cts about parent relationship of QtObject. This has nothing to do with smartpointer philosophy, the point is to ensure than every child object will be distroyed when the parent object is distroyed.
So combining smartpointers and parent-child relationship is a very bad idea, because smartpointer are there to clear memory when all copies of the pointer are distroyed... So you will have double memory release ==> crash!
But Qt also includes another type of smartpointer called QPointer, which will becomes null when the QObject is deleted, and distroying the the QPointer, will not
The other advantage of parent-child relationship, is that parent and childs always living in the same thread, moving parent object to another will also move all child to the same thread. Moving childs to another thread is not allowed.
There is only 1 rule about parent-child relationship and smartpointer, avoid to combine them.