Нет никакой (необходимой) разницы в том, как хранятся структуры и как хранятся классы. Фактически, разница only между структурами и классами в C ++ заключается в том, что члены структуры являются открытыми по умолчанию, а члены класса являются закрытыми по умолчанию.
Как и любой другой тип объекта, объект класса или типа структуры имеет длительность хранения , которая определяется тем, как он создан.
Срок действия объекта, объявленного внутри функции, ограничен включающим блоком; обычно это реализуется путем сохранения его в стеке.
Объект, объявленный вне функции или с ключевым словом static
, имеет время жизни, которое распространяется на все выполнение программы; это можно реализовать, сохранив его в сегменте данных.
Объект, выделенный оператором new
(или вызовом malloc()
), существует до тех пор, пока не станет delete
d (или free()
ed); такие объекты размещаются в «бесплатном магазине», иногда неофициально именуемом «кучей».