Le Vendredi 14 Mars 2003 19:35, Jason Keirstead a écrit : > On March 14, 2003 02:27 pm, Olivier Goffart wrote: > > and ~KC Runs *BEFORE* ~QObject is run and signal was emitted. > > > > I am sorry > > Well, just to prove you wrong, I changed the code to use destroyed() > and a static_cast, and I am deleteing contacts, the slot is firing( I added > a debug ) and it is working perfectly. Of course it works (most of the time). You are basically doing: struct KC : QObject { Qstring str; }; KC* object = new KC; object->str->~QString; QString myStr = object->str; The object has been destroyed, but just recently so the memory should still contain the old values. The problem is that you are relying on undefined behaviour (working on a deleted object) which means that all sorts of nasty things are lyable to happen in a nasty sometimes-it-works-sometimes it doesn't sort of way. Please don't knowingly introduce such bad code into KDE. Thank you, -- Luis Pedro Coelho http://blogs.salon.com/0001523