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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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!