Ну, самое простое решение может быть просто использовать сборку мусора в
C ++. Коллектор Boehm работает хорошо, например. Тем не менее, есть
плюсы и минусы (но портирование кода, изначально написанного на C #, было бы
вероятный кандидат на случай, когда плюсы во многом перевешивают минусы.)
В противном случае, если вы преобразуете код в идиоматический C ++, не должно быть
что много динамически размещаемых объектов, чтобы беспокоиться о. В отличие от C #, C ++
по умолчанию имеет семантику значений и большинство ваших недолговечных объектов
должны быть просто локальными переменными, возможно, скопированы, если они будут возвращены,
но не распределяется динамически. В C ++ динамическое распределение обычно
используется только для объектов сущностей, время жизни которых зависит от внешних событий;
например Monster
создается в случайное время с вероятностью
в зависимости от состояния игры, и удаляется через некоторое время, в
реакция на события, которые меняют игровое состояние. В этом случае вы
удалить объект, когда монстр перестает быть частью игры. В
C #, у вас, вероятно, есть функция dispose
, или что-то подобное, для
такие объекты, так как они обычно имеют конкретные действия, которые должны быть
осуществляется, когда они перестают существовать - такие вещи, как
Наблюдатель, если это один из шаблонов, которые вы используете. В C ++ это
такого рода вещи обычно обрабатываются деструктором, а вместо
позвонив dispose
, вы позвоните удалить объект.