manyim
Messages postés6Date d'inscriptionlundi 14 avril 2008StatutMembreDernière intervention28 février 2009
-
14 avril 2008 à 20:29
manyim
Messages postés6Date d'inscriptionlundi 14 avril 2008StatutMembreDernière intervention28 février 2009
-
16 avril 2008 à 16:40
J'ai des problemes de conflit avec des constructeurs d'une meme classe en C++ et j'utilise WinDevC++.à l'aide
//Je suis entrain de construire une classe E_A qui doit pouvoir //etre initialisé avec un nombre, ou une chaine de type char* ou
// avec une instance de dejà existente de la meme classe. J'ai donc
defini les trois constructeurs correspondants, ainsi que le
constructeur par defaut, mais aussi le constructeur de copie. Mais les
initialisations a partir des nombre et des chaines posent problemes.
voici tout le code :
luhtor
Messages postés2023Date d'inscriptionmardi 24 septembre 2002StatutMembreDernière intervention28 juillet 20086 15 avril 2008 à 17:48
E_A G = 354.5
E_A G(354.5)
C'est pas tout a fait équivalent. La première fait un appel implicite au constructeur E_A(double) puis c'est l'opérateur de copie qui intervient. Or ton opérateur de copie est faux donc le pb vient sans doute de la.
E_A(const E_A& Exp) //constructeur de copie
La deuxième écriture est plus explicite et appelle directement le bon constructeur.
manyim
Messages postés6Date d'inscriptionlundi 14 avril 2008StatutMembreDernière intervention28 février 2009 14 avril 2008 à 22:51
Merci vecchio et juju12. En effet les syntaxes E_A G(354.5) et
E_A H("x+y") . Malgré cela je ne m'explique pas toujours
pourquoi WinDevC++ n'accepte pas les autres syntaxes, pourtant tres
légales et plus élegantes. La classe en question est destinée à être
utilisée plutard par le grand public. . Il est donc normal que chaque
utilisateur puisse initialiser ses instances selon les normes de
flexibilité de la P.O.O. Les deux formes d'initialisation doivent
normalement marcher. De toute manière, je suis rassuré et tranquile.
j'ai compris par l'assistance des confreres que c'est
WinDev qui est un peu toqué. Je ne sais pas encore si la cause vient du
compilateur ou de mon propre ordinateur.
Merci poutout ;
Vous n’avez pas trouvé la réponse que vous recherchez ?