Undefined reference to `appel au constructeur d'un objet`
Bonjour,
Je me suis mis au C++ deux jours et je rencontre une difficulté plutôt frustrante:
J'ai trois fichiers: main.cpp Mot.cpp Mot.hpp. Voici le code:
main.cpp :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
#include <fstream>
#include "Mot.hpp"
#include <string>
using namespace std;
int main()
{
cout << "Saisir un mot :" << endl;
string chaine;
cin >> chaine;
Mot mot;
mot.setChaine(chaine);
mot.melanger();
cout << "Les lettres sont : " << mot.getMelange() << endl;
cout << "Proposition : " << endl;
cin >> chaine;
if(chaine.compare(mot.getChaine()) == 0) cout << "OK !" << endl;
else cout << "Non !" << endl;
return 0;
} |
Mot.cpp :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
#include <iostream>
#include <string>
#include <cstdlib>
#include "Mot.hpp"
using namespace std;
class Mot
{
private:
string chaine;
string melange;
public:
Mot()
{
}
Mot(string _chaine)
{
chaine = _chaine;
}
void melanger()
{
unsigned short int i(0),j;
while(i < chaine.length())
{
j = (rand()*(chaine.length()));
melange[j] = chaine[i];
i++;
}
}
string getMelange()
{
return melange;
}
string getChaine()
{
return chaine;
}
void setChaine(string _chaine)
{
chaine = _chaine;
}
virtual ~Mot()
{
}
} |
Mot.hpp :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
#ifndef MOT_HPP_INCLUDED
#define MOT_HPP_INCLUDED
#include <string>
using namespace std;
class Mot
{
public:
Mot();
Mot(string _chaine);
void melanger();
string getMelange();
void setChaine(string _chaine);
string getChaine();
virtual ~Mot();
};
#endif // MOT_HPP_INCLUDED |
A la ligne 12 dans main.cpp j'obtiens l'erreur suivante: undefined reference to Mot::Mot()
Dans les différents tutoriels que j'ai consulté, la manière de créer un objet semble être identique, et je ne vois pas d'erreur dans les fichiers Mot.cpp et Mot.hpp. Peut-être une étourderie de ma part ?
Je vous remercie d'avance pour toute réponse.
Ben