On Thursday, 20 June 2013 15:36:46 CEST, Thomas Lübking wrote:
The important part here is that there /is/ a virtual deconstructor in the base class (where it /has/ to be if you don't want funny effects on deconstruction) It's not going away and every inheritance implemented deconstructor will be virtual as well - also the autogenerated. It's not required to explicitly add it there for nothing to do. If you're however going to add one, it shall not be inline. Actually rather no non-private function in a library interface should be inline.
Ah, it makes sense now -- you (and the KDE instructions) focus in ensuring the ABI compatibility while I concentrate on a working RTTI. What I'm saying is that if you have class Foo: public QObject, you have to declare and define a non-inlined virtual destructor ~Foo(). You're right that not marking it as "virtual" doesn't matter. If there's no explicit ~Foo(), you won't be able to use dynamic_cast<Foo&> correctly and reliably from multiple translation units, AFAIK. Cheers, Jan -- Trojitá, a fast Qt IMAP e-mail client -- http://trojita.flaska.net/