Tout au plus une faiblesse dans le design de l'appli : les interfaces ont été mal définies.
Rajouter des données membres est la base de l'encapsulation (mais je ne veux pas te faire l'affront de t'expliquer ce que c'est, je suis sur que tu as toutes les compétences requises... Et il n'y a pas de 2nd degré/ironie la dedans).
Une fois les interfaces bien définies, robustes voire rock solid, tout se passe au niveau de l'héritage. Point.
C'est pourtant un vrai probleme :
C herite de B qui herite de A
Tu veux ajouter une methode X a B, histoire que C en tire parti automatiquement aussi plutot que devoir tout recreer, ben t'es dans la merde, les softs utilisant ces objets depuis une lib vont claquer.
Est-ce que ca signifie un manque dans le design d'une classe ? Oui peut-etre, est-ce que ca change le fait que C++ est un langage qui rend la modification de code existant tres difficile ? Non
En C, si tu te rends compte qu'il manque qqe chose, c'est pas difficile de l'ajouter sans tout casser, en C++ c'est une autre paire de manche.
[^] # Re: Peur...
Posté par pasBill pasGates . En réponse au journal Qt 4.0 en GPL sous Windows. Évalué à 2.
Rajouter des données membres est la base de l'encapsulation (mais je ne veux pas te faire l'affront de t'expliquer ce que c'est, je suis sur que tu as toutes les compétences requises... Et il n'y a pas de 2nd degré/ironie la dedans).
Une fois les interfaces bien définies, robustes voire rock solid, tout se passe au niveau de l'héritage. Point.
C'est pourtant un vrai probleme :
C herite de B qui herite de A
Tu veux ajouter une methode X a B, histoire que C en tire parti automatiquement aussi plutot que devoir tout recreer, ben t'es dans la merde, les softs utilisant ces objets depuis une lib vont claquer.
Est-ce que ca signifie un manque dans le design d'une classe ? Oui peut-etre, est-ce que ca change le fait que C++ est un langage qui rend la modification de code existant tres difficile ? Non
En C, si tu te rends compte qu'il manque qqe chose, c'est pas difficile de l'ajouter sans tout casser, en C++ c'est une autre paire de manche.