Bonsoir � toutes et � tous,

J'ai un petit probl�me d'architecture, sans doute tr�s simple � r�soudre: j'ai une classe m�re et une classe fille et chacune d'elles instancient un objet.
Mais ces objets diff�rent suivant que ce soit la classe m�re ou la classe fille qui les instancie, exemple:

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
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
//**************** Base Class ****************
class Base {
public:
    Base(int a1, int a2, int a3)
    :a{a1}, b{a2}, c{a3}
    {
        L = new Autre_Base(a1, a2);
    };
    ~Base() {
        delete L;
    };
protected:
    int a, b, c;
private:
    Autre_Base * L;
};
 
//**************** Derived Class ****************
class Derived: public Base{
public:
    Derived(int a1, int a2, int a3)
    :Base(a1, a2, a3)
    {
        L = new Autre_Derived(a1, a3);
    };
    ~Base() {};
private:
    Autre_derived * L;
};
 
//**************** Autre_Base Class ****************
class Autre_Base {
public:
    Autre_Base(int a1, int b1)
    :a{a1}, b{b1}
    {};
    ~Autre_Base() {};
protected:
    int a, b;
};
 
//**************** Autre_Derived Class ****************
class Autre_Derived: public Autre_Base {
public:
    Autre_Derived(int a1, int b1)
    :Autre_Base(a1, b1)
    {};
    ~Autre_Derived() {};
};
Je n'ai pas d�taill� plus, mais des fonctions sont pr�sentes dans Autre_Base et Autre_derived qui effectuent des calculs similaires mais avec des diff�rences fondamentales.
D'autre part, si j'appelle le constructeur de 'Derived' qui appelle celui de la 'Base', l'objet 'L' est instanci� 2 fois (une fois dans la Base et une fois dans la Derived)
Comment arranger cette structure (dois-je passer par une classe pure virtuelle?). Sachant que cette structure est l�g�re mais instanci�e intensivement (de l'ordre de 10^11 ou 10^12 fois environ).

Merci beaucoup pour vos conseils �clair�s!