[Home] [By Thread] [By Date] [Recent Entries]
Steinar Bang wrote: > > >>>>> James Clark <jjc@j...>: > > > One interesting issue is whether to provide a virtual destructor. I > > think the safest solution is not to provide a virtual destructor but > > instead to declare but not define a private operator delete. This > > makes it a compile time error to do: > > > DTDHandler *p; > > // ... > > delete p; > > Hm... not defining a virtual destructor for a class with virtual > functions gives me warnings in "gcc -Wall". Will a private operator > delete do anything about these warnings, I wonder...? If not, gcc should be fixed, because there's no legitimate reason to give a warning. I got this technique from http://www.develop.com/dbox/cxx/SmartPtr.htm#Obvious I've also verified that this complies with the C++ standard (the relevant clause is 12.5p4). gcc 2.95.1 correctly gives a compile-error if you try to delete such a class. Visual C++ 6 doesn't catch this at compile, but you'll still get a link-time error. The other possible technique is a protected virtual destructor with an empty implementation. James xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev@i... Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/ and on CD-ROM/ISBN 981-02-3594-1 To unsubscribe, mailto:majordomo@i... the following message; unsubscribe xml-dev To subscribe to the digests, mailto:majordomo@i... the following message; subscribe xml-dev-digest List coordinator, Henry Rzepa (mailto:rzepa@i...)
|

Cart



