Bonjour,
Dans l’objectif d’aider Paul et Topinambour, je me suis fait une classe CPolinome, pour les guider (s’ils me le demandent …). Et en accord avec ce que m’a conseillé Int21h, je l’ai faite en classe template, Mais j’ai une question.
Dans cette classe template, il y a l’opération division. Voulant appliquer une précondition (un assert en ce qui concerne la division par zéro!), je tests si l’un des coefficients du dividende est nul … mais avec un template, comme on fait ?
Pour la classe CRationel, j’ai une fonction membre "bool isNull () const;", faite sur mesure. Mais si j’instancie cette classe avec un float ou un double, cette fonction n’existe pas! Inversement, il est facile de faire une comparaison (m_coef == 0) pour un float ou un double, mais ça ne marche pas si les coefficient sont des CRationnal.
J’ai bien quelques idée, tous plus loufoques les une que les autres (il y a des fois, qu’est ce que je suis imaginatif ! 1: Encapsuler les float/double dans une classes avec toutes les opérations de float/double, plus une fonction membre isNull(). 2: Réaliser une fonction libre isNull(argumment), et la décliner avec tous les types d’argument qui pourrait être utilisée dans le tempate. 3: Utiliser une macro).
Mais vous, comment feriez-vous ?
(PS: J’espère que Paul et Topinambour ne viennent pas sur ce forum: Il faut bien qu’ils bossent un peu ;-) )