Hi C++ ler,
ich habe ein Problem. Wenn ich diesen Code ausführe, vermute ich wird beim konvertieren des StrY Objektes in einen string, das StrY Objekt gelöscht. Damit verweist der string str auf nichts.
Das ist ein Problem.
Ich dachte, wenn ich
str = StrY(localname)
verwende würde der Konstruktor von str aufgerufen und ihm wird localname zugewiesen.
Kann mir jemand sagen, wie ich das hinbekomme? (Wenn möglich auch die Speicherlücke in meinem Hirn mit KnowHow füllen!)
Bin schon völlig verzweifelt.
Danke schon mal
Karsten
PS: Diese Klasse StrY ist zur Hilfe, da XMLString::Transcode einen pointer auf einen dynamisch allocierten Speicher zurück gibt. Er muß also automatisch gelöscht werden. Diese Klasse möchte ich so modifizieren, das ich den dynamischen Speicher lösche, aber den Inhalt in einen String kopieren kann.
class StrY
{
public :
StrY(const XMLCh\* const toTranscode)
{
// Call the private transcoding method
fLocalForm = XMLString::transcode(toTranscode);
}
~StrY()
{
delete [] fLocalForm;
}
const char\* localForm() const
{
return fLocalForm;
}
operator std::string& ();
private :
char\* fLocalForm;
};
StrY::operator std::string& ()
{
return std::string(fLocalForm);
}
inline std::ostream& operator