Construction depuis un entier. Par exemple pouvoir faire qqch comme:
Fraction a(12);
Construction depuis une chaine: Non. Juste le cas simple est demandé. Mais si tu veux faire plus, libre à toi. Mais il devient rapidement difficile de fixer une limite.
Mais la construction à partir d'un entier demande moins de traitement, non ? [ J'espère sinon je suis bon pour retourner en cours pendant les vacances . ]
Cela "ne sera pas nécessaire" uniquement s'ils implémentent bien l'addition sous forme d'un opérateur libre. Sans cela, ils vont avoir quelques surprises.
@raphamil, si ta construction foire, ou si tu construis avec un dénominateur nul, => exception!
Est-ce qu'on est obligé de respecter la convention m_nomAttribut pour les attributs de la classe ? J'ai plutôt tendance à y accéder avec this->attribut.
Est-on obligé de créer notre propre classe d'exception ?
Est-ce qu'on est obligé de respecter la convention m_nomAttribut pour les attributs de la classe ? J'ai plutôt tendance à y accéder avec this->attribut.
Bon tant pis.
Merci pour cette réponse Nanoc. Je trouve juste ça plus clair (beaucoup d'autres langages le font self.attr);
J'avance bien Le coeur de la classe est terminé (simplification, construction à partir de 2 entiers || d'un double (je me casse la tête sur celui avec la std::string)).
Par contre, je ne comprends pas comment mon code fonctionne (oui je sais je suis bizarre) (mais il marche) :
returna%b!=0?Fraction::PGCD(a%b,a):b;
(Fraction::PGCD(a, b) est ici récursive.)
Ce n'est pas plus lent. C'est plus lourd à taper, et obligatoire pour les templates.
C'est juste que la convention (et ce n'est rien d'autre) m_lowerCamelCase est assez répandue pour les variables membre.
sinon y a t il un moyen de savoir le nombre des chiffres apres la virgules?
modf
Nanoc: lorsque tu dis qu'il faudrait s'intéresser aux cas " "Fraction + Entier" ou "Reel + Fraction" ", ne me dis pas qu'il faut déclarer tous les opérateurs en double . J'en ai déjà une vingtaine avec ceux de comparaisons.
Le dernier truc est sale, dur à maintenir et sans intérêts ici.
PS: je ne vois pas ce que vient faire le PGCD en propriété d'un nombre rationnel, ni pourquoi ce nombre aurait des fonctions membres PGCD et PPCM. Ces fonctions existent en dehors de toute notion de nombre rationnel.
J'ai bien une adresse de solution où vous envoyer (pour voir l'interface type par des pros), mais l'exo perdrait un de ces intérêts.
Je serais surpris qu'il n'ait pas connaissance de cette suite de bibliothèques qui booste notre productivité.
(pour continuer dans le second degré <rot13>vy l n har pynffr qr zêzr pbzcyrkvgé qnaf yn ovoyvbguèdhr fgnaqneq</rot13>)