LINUX.ORG.RU

История изменений

Исправление alysnix, (текущая версия) :

если ты в классе написал функцию с delete, то ты:

  • или должен гарантировать что обьект можно создавать только по new, а не на стеке или в глобальной памяти.

  • или в случае создания на стеке(или глоб. памяти) не иметь возможность вызвать delete. или курчаво понимать где создан обьект, по this (что есть адрес) - находится ли он в куче, и только тогда делитить. или делать конструктор с вариантом - создаю на куче или нет. иметь такой флаг в обьекте и делитить.

также hint - если обьект имеет функцию, что удаляет его же - это довольно подозрительное место, и хотя при аккуратном использовании это можно делать, но использовать надо оч.аккуратно и писать коммент - почему сделана функция самоубийства. обычно обьект убивают внешним кодом, а не внутренним.

Исходная версия alysnix, :

если ты в классе написал функцию с delete, то ты:

  • или должен гарантировать что обьект можно создавать только по new, а не на стеке или в глобальной памяти.

  • или в случае создания на стеке не иметь возможность вызвать delete. или курчаво понимать где создан обьект, по this (что есть адрес) - находится ли он в куче, и только тогда делитить. или делать конструктор с вариантом - создаю на куче или нет. иметь такой флаг в обьекте и делитить.

также hint - если обьект имеет функцию, что удаляет его же - это довольно подозрительное место, и хотя при аккуратном использовании это можно делать, но использовать надо оч.аккуратно и писать коммент - почему сделана функция самоубийства. обычно обьект убивают внешним кодом, а не внутренним.