Если вы собираетесь использовать new
и delete
, то следует придерживаться общего правила: используйте ровно столько delete
с, сколько вы сделали new
с.
В вашем случаеВы вызвали new[]
только один раз.Вы должны * inovke delete[]
только один раз.
Кроме того, если вы когда-либо сохраняете указатель в переменной-члене, пожалуйста, рассмотрите Правило Трех .
Iскажите «Если вы собираетесь использовать new
и delete
», потому что вы часто не должны.Используя методы RAII и стандартные контейнеры, вполне возможно написать совершенно полезные программы, которые никогда напрямую не вызывают new
или delete
.
Если вы пытаетесь поддерживать массив int
s, используйтеstd::vector
:
class MyClass {
std::vector<int> it;
void SomeFun() { it.resize(10); }
};
Затем в вашем деструкторе ничего не делать .Векторы исчезают без вашей помощи.