[
Lists Home |
Date Index |
Thread Index
]
- From: Steinar Bang <sb@metis.no>
- To: xml-dev@ic.ac.uk
- Date: 27 Dec 1999 22:24:55 +0100
>>>>> James Clark <jjc@jclark.com>:
> 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;
I'm in the process of making a dispatching DocumentHandler (one that
looks at the top level element of the document and maps from this
element's tag name to the appropriate DocumentHandler).
For this I would like to use a DocumentHandler factory class, and just
delete the DocumentHandler when I've finished parsing.
But this gets hard to do if the DocumentHandler base class destructor
is private.
Of course there is an easy workaround by wrapping the DocumentHandler
subclass in another class that knows about the subclass, ie. something
like this:
class MyAdapter : public AdapterBase {
public:
MyAdapter();
virtual ~MyAdapter();
virtual DocumentHandler& handler() { return handler; }
private:
MyDocumentHandler handler_;
};
(where handler() is defined as a virtual function in AdapterBase, and
AdapterBase is the class known by the dispatching DocumentHandler).
But it seems like a bit of unneccessary indirection.
xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev@ic.ac.uk
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/ and on CD-ROM/ISBN 981-02-3594-1
To unsubscribe, mailto:majordomo@ic.ac.uk the following message;
unsubscribe xml-dev
To subscribe to the digests, mailto:majordomo@ic.ac.uk the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa@ic.ac.uk)
|