Пока вопрос FinalRelease
, я предполагаю, что ваш вопрос связан с ATL.
В большинстве случаев вы можете убрать вещи в любом из двух.FinalRelease
будет вызвано непосредственно перед фактическим деструктором.Важным отличием является то, что если вы объединяете другие объекты, FinalRelease дает вам возможность очистить ссылки и освободить зависимости до того, как фактический деструктор класса COM-объектов верхнего уровня (особенно CComObject
) начнет работать.
То есть вы очищаете вещи в два этапа: сначала ссылки на агрегированные объекты в FinalRelease
, а затем другие вещи в FinalRelease
или деструкторе.