Косидеру следующий код:
class Foo
{
Monster* monsters[6];
Foo()
{
for (int i = 0; i < 6; i++)
{
monsters[i] = new Monster();
}
}
virtual ~Foo();
}
Каков правильный деструктор?
Foo::~Foo()
{
delete [] monsters;
}
или это:
Foo::~Foo()
{
for (int i = 0; i < 6; i++)
{
delete monsters[i];
}
}
В настоящее время у меня есть самый верхний конструктор, и все работает okey, но, конечно, я не вижу, что происходит утечка...
Лично я думаю, что вторая версия гораздо логичнее, учитывая то, что я делаю. Во всяком случае, что такое "правильный" способ сделать это?