Я старый программист на С# и программист на C (без динамического распределения памяти), но хотел бы немного узнать о программировании на Visual С++. Вопрос, который меня беспокоит, связан с управлением памятью на С++. В С# сборщик мусора заботится об управлении памятью, но на С++ необходимо установить некоторые правила относительно того, кто отвечает за освобождение выделенной памяти. У меня есть некоторые типичные сценарии из С#:
-
Объект помещается в какой-либо контейнер. Кто несет ответственность за освобождение памяти. Что делать, если несколько классов имеют один и тот же объект?
-
Factory. Мне нравится использовать иерархию классов, где родительский класс имеет метод создания дочерних объектов?
-
Есть ли способ предложить вызывающему методу, чтобы возвращаемый объект находился в собственности вызываемого абонента.
Я хотел бы услышать хорошие советы об этом.