Déclaration anticipée ou destructeur par défaut?
Bonjour,
lorsque vous déclarez une nouvelle classe, privilégiez-vous la version avec déclaration anticipée des types des données membres
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| class Bar;
class Foo
{
public:
Foo(int arg) : m_data(new Bar(arg))
{}
~Foo()
{ delete m_data; }
private:
Bar* m_data;
}; |
ou la version avec destructeur par défaut?
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| #include "bar.hpp"
class Foo
{
public:
Foo(int arg) : m_data(arg)
{}
private:
Bar m_data;
}; |
J'utilise souvent la seconde pour gagner en performance sur la destruction des objets mais je me demande si ce n'est pas un mauvais réflexe.
Quel choix faites-vous en pratique et pourquoi?
Merci pour vos réponses!