anduril22
Messages postés75Date d'inscriptionmardi 5 mars 2002StatutMembreDernière intervention 5 octobre 2005
-
26 mai 2004 à 21:06
cs_djl
Messages postés3011Date d'inscriptionjeudi 26 septembre 2002StatutMembreDernière intervention27 novembre 2004
-
26 mai 2004 à 21:46
Salut j'ai un petit souci, (erreur de compilation) j'ai une classe qui se compose comme ceci :
Dans mon fichier test.h
***********************
typedef struct _maillon {
int nb;
struct _maillon * suivant;
} maillon;
// Constructeur de la classe
CFILE::cfile(maillon **f) {
*f = NULL;
}
// Programme de test
void main () {
maillon * file;
CFILE mafile = new CFILE(&file);
}
et quand je compile j'obtient cette erreur
****************************************
test.cpp(50) : error C2664: '__thiscall CFILE::CFILE(const class CFILE &)' : cannot convert parameter 1 from 'struct _maillon ** ' to 'const class CFILE &'
Reason: cannot convert from 'struct _maillon ** ' to 'const class CFILE'
No constructor could take the source type, or constructor overload resolution was ambiguous
cs_djl
Messages postés3011Date d'inscriptionjeudi 26 septembre 2002StatutMembreDernière intervention27 novembre 20047 26 mai 2004 à 21:19
le message est clair, tu essay de faire une copie a partir d'un maillon, seul le constructeur par copie est generer par le compilo
aussi ton code n'est pas c++ et tu n'a pas redeifini de constructeur (il doit avoir le mem non que la classe, en respectant la casse!)
struct maillon {
int nb;
maillon * suivant;
};
struct CFILE {
CFILE();
CFILE(maillon ** f);
};
le CFILE(); c'est pas obligatoire mais a partir du moment ou tu redefini un constructeur, doit doit obligatoirement faire de meme avec le constructeur par defaut (sans parametres) sinon si tu fait new[] ==> boum
la c'est deja mieux, mais j'ai du mal a voir comment tu modelise ce probleme ??