|
|
|
#1 |
|
Messages: n/a
Hébergeur: |
Bonjour,
J'ai un truc bizarre: J'ai fait une classe Polynome avec surcharge des opérateurs habituels et le code suivant passe sous VC++ 2005 et pas sous CodeBlocks 8.02: Polynome P,X; double d; P *= X - d; Par contre, le suivant passe sous les deux: Polynome P,X; double d; Polynome tmp = X - d; P *= tmp; Que se passe-t-il ? Merci d'avance. -- Etienne |
|
|
|
#2 |
|
Messages: n/a
Hébergeur: |
On Thu, 3 Jul 2008 18:29:14 +0200, "Etienne Rousee"
<etienne@rousee.org>: >J'ai fait une classe Polynome avec surcharge des >opérateurs habituels et le code suivant passe sous >VC++ 2005 et pas sous CodeBlocks 8.02: Si je ne m'abuse, CodeBlocks est un IDE, pas un compilateur. >Polynome P,X; Je t'invite à réduire ta classe Polynome, afin d'avoir le code minimal qui reproduise le problème. Si ça ne suffit pas à te faire trouver la solution tout seul, poste ledit code ici. Par ailleurs, généralement, un compilateur ne ressort pas un booléen : si le code ne compile pas, il affiche un message d'erreur. Je t'invite à le lire. |
|
|
|
#3 |
|
Messages: n/a
Hébergeur: |
On Jul 3, 7:45 pm, Fabien LE LEZ <grams...@gramster.com> wrote:
> On Thu, 3 Jul 2008 18:29:14 +0200, "Etienne Rousee" > <etie...@rousee.org>: > >J'ai fait une classe Polynome avec surcharge des > >opérateurs habituels et le code suivant passe sous > >VC++ 2005 et pas sous CodeBlocks 8.02: > Si je ne m'abuse, CodeBlocks est un IDE, pas un compilateur. > >Polynome P,X; > Je t'invite à réduire ta classe Polynome, afin d'avoir le code > minimal qui reproduise le problème. Si ça ne suffit pas à te > faire trouver la solution tout seul, poste ledit code ici. > Par ailleurs, généralement, un compilateur ne ressort pas un > booléen : si le code ne compile pas, il affiche un message > d'erreur. Je t'invite à le lire. C'est certainement comme ça qu'il faut procéder, mais quand ça marche avec une variable explicite, et non avec un temporaire (valeur de retour d'une fonction), il y a tout à parier qu'il y a une erreur de const. D'autant plus qu'on sait que VC++ a une extension qui autorise l'initialisation d'une référence non-const avec un temporaire, et que cette extension est active par défaut. (Il faut préciser /Za pour la désactiver.) Il y a donc tout à parier que le type du paramètre de son opérateur *= est Polynome&, et non Polynome const&, comme il se doit. -- James Kanze (GABI Software) email:james.kanze@gmail.com Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34 |
|
|
|
#4 |
|
Messages: n/a
Hébergeur: |
"James Kanze" <james.kanze@gmail.com> a écrit... >Il y a donc tout à parier que le type du paramètre >de son opérateur *= est Polynome&, et non >Polynome const&, comme il se doit. Bien sûr, tu as tout à fait raison, James. Bon, j'en ai quelques autres à corriger en chaîne, je vais voir ça. Merci. -- Etienne |
|
|
|
#5 |
|
Messages: n/a
Hébergeur: |
D'ailleurs, de nombreuses FAQs (dont la FAQ C++ de Developpez) en
parlent... Documente toi sur le sujet pour comprendre le fond de la chose et ainsi être sûr de ne pas reproduire ce genre d'erreurs car cela te semblerait totalement incohérent. |
|
|
|
#6 |
|
Messages: n/a
Hébergeur: |
Alp Mestan wrote:
> D'ailleurs, de nombreuses FAQs (dont la FAQ C++ de Developpez) en > parlent... Eviter quand même de citer des documents bidons, remplis d'inepties, et écrits par des gamins de 15 ans... |
|
|
|
#7 |
|
Messages: n/a
Hébergeur: |
Neels a écrit :
> remplis d'inepties Je suis curieux de connaître les inepties qui te font sursauter Etpourquoi. > écrits par des gamins de 15 ans... Sur quoi te bases-tu ? -- Mickaël Wolff aka Lupus Michaelis http://lupusmic.org |
|
|
|
#8 |
|
Messages: n/a
Hébergeur: |
> Neels a écrit :
>> remplis d'inepties > > Je suis curieux de connaître les inepties qui te font sursauter Et> pourquoi. > >> écrits par des gamins de 15 ans... > > Sur quoi te bases-tu ? L'âge est ecrit dans les propriétés des utilisateurs, entre autres de ceux qui osent se prendre pour des profs. Il vaut mieux en rire tellement c'est énorme... Sans parler des forums, une véritable secte, où des mômes modérateurs de 18 balais, s'amusent à modifier et supprimer les posts dès que ça ne va pas dans le sens du site (et de sa pub massive (flooding)) C'est assez hallucinant... |
|
|
|
#9 |
|
Messages: n/a
Hébergeur: |
Les questions/réponses sont revues par des experts C++ français.
Ensuite, généralement ce ne sont pas des gamins de 15 ans qui interviennent et rédigent (pas comme sur le site du zéro), mais des programmeurs C++ avertis. Si tu as un problème avec la politique de Developpez, c'est autre chose. |
|
![]() |
| Outils de la discussion | |
|
|