Управление памятью в C ++ практически автоматическое (с несколькими оговорками).
Большую часть времени не динамически выделяет память.
Используйте локальные переменные (и обычные переменные-члены), и они будут автоматически создаваться и разрушаться.
Когда вам нужны указатели, используйте умный указатель.
Начните с использования boost :: shared_pointer вместо указателей.
Это поможет вам выбрать правильный путь и прекратит случайное удаление памяти в неподходящее время, и 90% вашего кода будет выпущено правильно (к сожалению, циклы вызовут проблему (только с точки зрения утечек), и вам нужно будет проектировать соответственно (но мы есть другие умные указатели для работы с циклами weak_ptr))
Мое основное правило заключается в том, что класс никогда не содержит указатель RAW. Всегда используйте некоторую форму стандартного контейнера или умного указателя. Используя их; вызовы деструкторов становятся автоматическими.
Как только у вас возникнет чувство, начните читать о других умных указателях и когда их использовать:
Умные указатели: или кому принадлежит ваш ребенок?