Re: Why do I need to overload =
John Doe wrote:
[..]
Hum I thinl I have understood why it couldn't work:
LPTSTR szXmlIn = NULL;
CString strXmlFmtOut;
m_OmaProv.ProcessConfigXML(szXmlIn, strXmlFmtOut);
When I call ProcessConfigXML , first argument is a C char array =>
CString objects are create temporarly then I save a pointer to ths
temporary object :
BOOL CProvisioning::ProcessConfigXML(const CString& strConfig, CString&
strXmlOut)
{
m_thrParam = ThreadParam(this, &strConfig, &strXmlOut);
...
}
So I suppose address of &strConfig is temporary ...
Am I wrong ?
If you're receiving a reference to some temporary object and holding
onto it, that's your problem. Don't do that. When your class has
references as members, you basically go into the *contract* that the
objects to which those members refer live *longer* than the object that
contains those references. If the referred objects have a shorter
lifetime than the object that needs them, fix the lifetime or fix the
ownership.
V
--
Please remove capital 'A's when replying by e-mail
I do not respond to top-posted replies, please don't ask