Вообще, освобождать нужно все, что сам создал. Другое дело что с компонентами и некоторыми другими вещами ситуация чуть отличается - можно назначить ответственного за освобождением ресурсов (Owner), который освободит их тогда, когда будет уничтожаться сам.
Цитата:
А какие объекты обязательно, и какие необязательно удалять.
Глобальные понятно не обязательно, а вот функции, например такая
|
А что тут непонятного? Ты создаешь объект внутри функции и отдаешь ссылку на него вызывающему коду. Следовательно, вызывающий код теперь является единственным хранителем ссылки на созданный объект. И если он ее утеряет не уничтожив объект - произойдет утечка, так как объект останется существовать, а все ссылки на него будут потеряны. Следовательно вызывающий код обязан уничтожить объект, когда в нем отпадет необходимость.