Bonjour à tous,
alors voilà j'ai un problème avec mon programme.
----------------- Intro : -------------------
En quelque ligne c'est un programme qui comprend deux calss :
-mot
-dico
La class mot permet d'entrer un mot ainsi que des synonymes ainsi qu'une description :
class mot
{
private:
char *tab;
int nb_syn;
int nb_max_syn;
char **tab_syn;
char *expl;
public:
mot(int, char*);
mot();
~mot();
void ajoute_syn(char*);
void affiche();
void saisit();
};
La class dico, permet d'entrer un mot (issu de la class mot) pour faire tout simplement un dictionnaire :
class dico
{
private:
mot *tab;
int taille;
int nb_mots;
public:
dico(int);
~dico();
void ajoute(mot&);
};
------------------- Problème : -------------------
Le problème ce situe en faite dans le constructeur de la class dico, j'ai fait :
dico::dico(int n)
{
taille = n;
nb_mots = 0;
if(taille > 0)
{
tab = new mot[taille];
}
}
NB : n étant le nombre de mot max.
Et la le compilateur me dit qu'il y a un problème sur :
tab = new mot[taille];
Il dit :
dictionnaire.cpp||In constructor `dico::dico(int)':error: no matching function for call to `mot::mot()'
mot.h|5|note: candidates are: mot::mot(const mot&)|
mot.h|13|note: mot::mot(int, char*)|
||=== Build finished: 1 errors, 0 warnings ===|
Je pense que l'erreur est en faite que le constructeur de la class mot doit contenir un int ainsi qu'un char :
mot(int, char*);
Or quand je fais : tab = new mot[taille];
ça doit coincer.
J'ai essayé de résoudre le problème en ajoutant un constructeur : mot::mot() {}; sauf que là bien entendu ça marche mais le programme finit par buguer (logique car il manque des données lors que je crée le mot).
Pouvez vous m'aider ? Comment créer cette allocation dynamique pour le dico ?
Bien cordialement.