Dans une biblioth�que j'ai une classe A dont d�rrive des classe A1, A2, A3, A4,....
dans une autre classe B j'ai des pointeurs sur A1, A2, A3, A4, ...
C'est pointeurs sont initialis�s hors de ma biblioth�que par les l'utilisateurs de ma biblioth�que.
Souvent ils les initialisent par des classes A1', A2', A3', A4',... qui d�rivent respectivement de A1, A2, A3, A4, ....
Par contre ils initialisent que les celles qu'ils utilisent. Donc dans ma classe B je me retouve avec des pointeurs nuls. Or quand j'en ai besoin mon programe crash. Il faut donc que je definisse une classe A0 qui ai un comportement par d�faut.
Or probl�me comment faire cela proprement ?
Une autre donn�e donn�es importantes c'est que mes pointeurs A1, A2, A3, A4, ... sont des donn�es public (pas tr�s POO tout �a) et que je ne peut pas me permettre le moindre impact sur les appli clientes (une soixantaines environ).
solution 1: A0 d�rive de A et dans ma classe B je ne met que des pointeurs sur A, au lieu de pointeurs sur A1, A2, A3, A4,... et je d�finie quelques part un pointeur sur A0 et cr�er un A0 et j'affecte tous les pointeurs A1, A2 , A3, A4,... sur mon A0. Le probl�me de cette solution c'est que apr�s les utilisateur peuvent m'initialiser un pointeur de A2 avec une instance de A2, ce que je ne veut pas.
solution 2: je cr�er des classes A01, A02, A03, A04, .... Ces classes d�rivant de A1, A2, A3, A4,.... Je laisse mes pointeurs dans B sur des A1, A2, A3, A4 et je les initialises avec des instance de A01, A02, A03, A04,...
Le probl�me de cette solution est que les A0x auront toutes le m�me comportement, mais je serait tout de m�me oblig� de les impl�menter toute. En plus il faut que je garde des pointeurs sur les A0x car si les utilisateurs les �crases il faut que je les lib�re tout de m�me en fin de prog.
solution 3: ici votre solution.![]()
Partager