C++ Tableau de pointeurs: delete ou delete []?

Cosider le code suivant:

class Foo
{
    Monster* monsters[6];

    Foo()
    {
        for (int i = 0; i < 6; i++)
        {
            monsters[i] = new Monster();
        }
    }

    virtual ~Foo();
}

Est-ce le bon destructeur?

ce:

Foo::~Foo()
{
    delete [] monsters;
}

ou ceci:

Foo::~Foo()
{
    for (int i = 0; i < 6; i++)
    {
        delete monsters[i];
    }
}

J'ai actuellement de la plus haute constructeur et tout fonctionne okey, mais bien sûr je ne peux pas voir si elle arrive à être une fuite...

Personnellement, je pense que la deuxième version est beaucoup plus logique, compte tenu de ce que je suis en train de faire. De toute façon, qu'est-ce que la "bonne" façon de le faire?

InformationsquelleAutor Jasper | 2010-05-11