If you create an assignment operator in your class, things would be
easier. But, to answer your question, the caller is responsible for freeing
the allocated memory returned by a called function:

                Xml_DOM_Node*  Xml_DOM_Node::getFirstChild() const 
                {
                        // get the node
                        DOM_Node node  =
pdomnodeimpl->domnode.getFirstChild();

                        // create your struct and wrap the node in it
                        Xml_DOM_Node_Impl* p = new Xml_DOM_Node_Impl;
                        p->domnode = node;

                        // create your returnable class with the wrapped
struct in it.
                        // The caller is responsible for deleting the memory
                        Xml_DOM_Node* pXmlDOMNode = new Xml_DOM_Node(p);
                        return pXmlDOMNode;
                }

                void main(void)
                {
                        .
                        .
                        .
                        DOM_Node n; // again, some valid node
                        Xml_DOM_Node_Impl* impl = new Xml_DOM_Node_Impl;
                        Xml_DOM_Node xmlnode1(impl);

                        Xml_DOM_Node*  xmlnode2 = xmlnode1.getFirstChild();
                        // do some work
                        .
                        .
                        .
                        delete xmlnode2;// caller deletes the memory
                }


> -----Original Message-----
> From: Awasthi, Anand [SMTP:[EMAIL PROTECTED]]
> Sent: Tuesday, June 12, 2001 3:11 PM
> To:   '[EMAIL PROTECTED]'
> Subject:      RE: wrapping Xerces API in my code !!
> 
> but what about the memory leak ( due to pointer creation with in function
> body ) ??
> 
> 
> 
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to