Bonjour � tous

J'ai � ma disposition un ensemble de classe polymorphiques

Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
class A: public M{
virtual T_A data_A_
void setData (T_A)
...
};
 
class B:public A{
T_B data_B_
B(T_B) // constructeur
...
};
o� T_A et T_B sont des types (peu importe)

Actuellement je peux �crire
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
 
T_B data_B;
B b(data_B);  // je construis mon objet B dérivé de A
T_A data_A1;
b.setData(data_A1); // j'assigne data_A1 dans la structure mère A
Si je rajoute la ligne suivante
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
 
T_A data_A2
b.setData(data_A2);
�a va fonctionner mais je vais �craser data_A1
Ca ne m'arrange (�videmment) pas !!!

Ce que je voudrais faire, c'est initialiser mon objet B avec ses donn�es membres (de type data_B), mais pouvoir avoir deux sets de donn�es data_A (donc sans �crasement de data_A1)


Les contraintes que j'ai sont:
Je ne peux pas toucher au code de A et B pcq ce n'est pas developp� par moi et je suis d�pendant des �ventuels releases futures


Voici donc les solutions que j'ai trouv� jusqu'� pr�sent:
1�re solution:
modif de la classe A:
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
 
class A: public M{
T_A data_A1_;
T_A data_A2_;
void setData1(T_A);
void setData2(T_A);
...
};
ca devrait fonctionner mais ca ne satisfait pas � ma contrainte...:-/

2�me solution:
cr�ation d'une classe "regroupement"
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
 
class X{
A a1_;
A a2_;
};
�a devrait aussi fonctionner mais l� par contre je ne vois du tout comment �crire un objet de type B tel que:
* les donn�es de type data_B passe dans la structure B
* je puisse passer faire varier les variables de type T_A

3�me solution:
la votre :-)

David