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/

Reply via email to