будет ли imageStack (переменная класса) размещаться в куче или стеке?
Если это статическая переменная-член, то она имеет статическое хранилище. Если это нестатическая переменная-член, то это дочерний объект экземпляра класса. Он будет уничтожен при уничтожении суперобъекта.
Однако, согласно ссылке на VTK, объект, указанный переменной и созданный функцией New
, использует динамическое хранилище. Невозможно создать vtkObject
экземпляров (например, vtkImageData
) в стеке.
[назначение] освобождает старую память, на которую оно указывало ранее?
Возможно; не обязательно.
Если умный указатель используется для указания на объект, он больше не будет ссылаться на этот объект после того, как ему было присвоено новое значение. Ссылка на VTK очень легка в деталях, но она говорит, что интеллектуальный указатель использует подсчет ссылок. Предположительно, когда удаляется последняя ссылка, объект уничтожается.