zwracam obiekt przez funkcję, który posiada destruktor (zwalnia on miejsce w dynamicznej tablicy operatorem delete []). Jak nietrudno sie domyslic, po zwroceniu przez funkcje tego obiektu, do tej tablicy nie ma co zaglądac. Jeżeli to ma jakies znaczenie to ten obiekt jest mojego typu X (klasa) i po zwroceniu przez funkcje stoi po prawej stronie operatora przypisania (przeladowanego dla klasy).
Jak mogę to naprawić, tzn. uruchomić destruktor (ktory zreszta sam sie uruchomi) ale jednoczesnie utworzyc jakos kopie tego obiektu zeby nie ginał od razu po zwroceniu z funkcji ?
Ewentualnie allokuj obiekt dynamicznie i zwracaj przez wskaźnik - wtedy nie ma kopiowania. Albo skorzystaj z dobrodziejstw C++11 i zrób konstruktor “przenoszący” - wtedy też unikniesz kopiowania