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]