Salut...
J'ai une saleté de programme chiant à faire pour l'école. J'ai un problème de débutant qui me prend la tête depuis quelques heures. Alors je ravale ma fierté et je poste.
Voilà, j'ai 4 classes (pour le moment) dans mon programme :
MATRICE : encapsule tout ce qu'il faut pour faire des calculs sur des matrices.
MATRICE_INTERFACE : dérivée de MATRICE, permet d'afficher et de saisir les valeurs d'une matrice. Ces méthodes d'entrée/sortie étant liée à l'interface graphique, j'ai préféré les éloigner de ce qui concerne le calcul pur.
SEL : objet qui permet la résolution d'équations matricielles. Il utilise trois matrices déclarées ainsi : MATRICE *A, *B, *C.
SEL_INTERFACE : dérivée de SEL et y ajoute les méthodes d'entrée/sortie.
C'est là que j'ai un problème : je veux que SEL_INTERFACE gère des matrices de type MATRICE_INTERFACE pour pouvoir les afficher.
Seulement, si dans la déclaration de la classe SEL_INTERFACE je mets MATRICE_INTERFACE *A, *B, *C, je me retrouve avec 6 matrices : celles de SEL et celles de SEL_INTERFACE !
Si je décide de ne rien déclarer dans SEL_INTERFACE, alors j'ai bien les 3 matrices de SEL, mais je ne peux pas les afficher puisqu'elles sont de classe MATRICE.
Bien sûr, dans SEL_INTERFACE, faire A = SEL::A provoque une erreur... Mauvais transtypage.
Je ne veux pas déclarer les matrices de SEL en tant que MATRICE_INTERFACE sinon ça n'a plus de sens... Ce que je voudrais, c'est avoir 3 et seulement 3 matrices dans SEL comme dans SEL_INTERFACE, avec en plus la possibilité dans SEL_INTERFACE de pouvoir appeler les méthodes de MATRICE_INTERFACE.
La solution se trouve-t-elle du côté des méthodes virtuelles ?
Merci du coup de main...
Nehim, qui part s'acheter des lardons pour la tartiflette ce soir
Message édité par Nehim le 29-11-2002 à 19:18:23