Voila, j'ai une classe abstraite qui utilise un objet qui ne peut être initialise que dans des classes concrètes qui vont implémenter cette classe abstraite.
Cela me donne :

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
 
class Abstract
{
  public:
   Abstract(...) { ... }
 
  protected:
   Widget w;
};
 
class Concret : public Abstract
{
  public:
   Concret() : Abstract(...), w(...) { ... }
 
};
Ce qui me gène c'est que w est initialise une première fois lorsque le ctor de Concret appelle celui de Abstract puis une seconde fois explicitement.
Cette me conception me semble douteuse.
Que préconiserez vous dans un tel cas, ie lorsque j'ai un attribut w dont une classe mère se sert mais qui ne peut être initialise que dans une classe fille concrète ?