Da CString ein Objekt ist, kann man dies als Rückgabewert benutzen, obwohl dies innerhalb der Funktion deklariert worden ist? Könnte es dabei Probleme geben???
Beispiel:
CString Programm::TestFunktion()
{
//Innerhalb der Klasse ein CString deklariert!!!
CString strTest;
Das geht so. Wie soll man es auch sonst machen ? Ich denke, der Wert wird bei Passieren des return-statements umkopiert, an die dafuer reservierte Stelle, die bei Deklaration des Funktionskopfes generiert wird. (Das ist uebrigens bei groesseren Objekten evtl. eine Performance-Bremse, bin nicht sicher ober der Compiler das erkennt und optimiert - daher in solchen Faellen mit Pointern oder besser mit Referenzen arbeiten)
Es kann keine Probleme geben, weil mit Hilfe des Copykonstruktors eine Kopie des Objekts erstellt wird.
Allerdings ist das nicht die schnellste Methode…
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]