Are you sure QList provides warranty it will not move items? Maybe it is safer to use shared pointer, it will be absolutely safe