cs_Sunsawe
Messages postés64Date d'inscriptionmardi 21 juin 2005StatutMembreDernière intervention 5 avril 2007
-
16 juil. 2005 à 11:19
cosmobob
Messages postés700Date d'inscriptionmardi 30 décembre 2003StatutMembreDernière intervention27 janvier 2009
-
16 juil. 2005 à 13:46
Bonjour,
excusez moi mais je ne savais pas comment titrer mon message autrement.
Voilà là fameuse erreur qui se suffit à elle même:
<chemin>Mesfunc.cpp(72) : error C2665:
'afficheInfo' : none of the 2 overloads can convert parameter 2 from
type 'std::ostream'
<chemin>Mesfunc.h(14):
could be 'MaClasse *afficheInfo(MaClasse *,std::ostream)'
<chemin>Mesfunc.h(15):
or 'MaClasse *afficheInfo(const
char *,std::ostream)'
while trying to match the argument list '(MaClasse *, std::ostream)'
Alors je ne sais pas si vous voyez le truc, mais il ne veut pas
compiler parce qu'il ne peut pas convertir un std:ostream
en...std::ostream!!!!!!!!!!!!!!!
cs_Sunsawe
Messages postés64Date d'inscriptionmardi 21 juin 2005StatutMembreDernière intervention 5 avril 2007 16 juil. 2005 à 12:48
Oui je vois ce que tu veux dire mais non.
Regarde bien le texte de l'erreur!!
Il te dit ne pas pouvoir transtyper le deuxième paramètre depuis 'std::ostream' que les appels possibles sont ceux ci : 'MaClasse *afficheInfo(MaClasse *,std::ostream)' et 'MaClasse *afficheInfo(const char *,std::ostream)' alors que j'essai de faire appel avec ça: '(MaClasse *, std::ostream)'.
Voilà texto ce que l'erreur dit donc le compilo te dit lui même que mes arguments sont corrects!
Moi voilà tout de même la ligne 72 qui n'est pas un appel c'est le corps de la surcharge de la fonction.
cosmobob
Messages postés700Date d'inscriptionmardi 30 décembre 2003StatutMembreDernière intervention27 janvier 20094 16 juil. 2005 à 13:04
l'erreur peut parait ambigue, c'est pour ca que je pense que c'est
mieux si tu copies-colle ici tout ton .h. A priori, si un des deux
compilateurs est buggé, c'est plus vc6 que vs7.
la a mon avis, pb avec les espaces de nommages...
dans ton .h tu ne doit pas avoir de using namespace std; et avoir
'MaClasse *afficheInfo(MaClasse *,std::ostream)' comme prototype.
dans ton .cpp, essaie de surchager avec std:: ou sans, d'enlever le using namespace std;
enfin bon, si ton but c'est pas de résoudre ton pb, mais de dire regardez c'est mysterieux ...
moi j'ai re obtenu ton erreur, et la suite du message m'a été utile:
error C2664: 'test' : impossible de convertir le paramètre 2 de 'std::ostream' en 'std::ostream'
Aucun constructeur de copie
n'est disponible pour class 'std::basic_ostream<_Elem,_Traits>'
ou le constructeur essaie d'exécuter une conversion non conforme en
référence non-__gc
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
a+
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_Sunsawe
Messages postés64Date d'inscriptionmardi 21 juin 2005StatutMembreDernière intervention 5 avril 2007 16 juil. 2005 à 13:37
Pourquoi moi j'ai pas la suite du message? il m'aime pas ou quoi?
Enfin bon apparement ça semble venir de là.
Mais pourquoi sous vc6 ça compile et ça marche?
vc7 est plus strict? mais là c'est même pas l'histoire si y'a pas de
constructeur par copie, ça ne devrait pas marcher quelque soit le
compilateur non?