[POO] Classe vs constructeur indéfini
Bonjour à tous,
j'ai un code qui lors de la compilation retourne une erreur "Undefined reference to 'FichierBalises::FichierBalises(char*)'
voici le code de ma fonction main...
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
int main(int argc, char *argv[])
{
char * nomFicIn;
try {
if (argc > 2)
throw (runtime_error("Trop d'argument spécifiés!"));
nomFicIn = argv[1];
FichierBalises unFichier(argv[1]);
}
catch (runtime_error erreur) {
cerr << "Erreur de runtime: " << erreur.what();
return -1;
}
catch (domain_error erreur) {
cerr << "Erreur de domaine: " << erreur.what();
return -2;
}
} |
et le code de FichiersBalise.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 48 49 50 51 52 53 54 55 56 57 58
|
#include <fstream>
#include <stdexcept>
#include "balise.hpp"
using namespace std;
class FichierBalises{
public:
/* FichierBalises
Ouvre un fichier texte qui sera interprete comme un fichier de balises.
Lève une exception de type runtime_error en cas d'impossibilité d'ouvrir le fichier
*/
FichierBalises(char * nomFichier)
{
string ligneLue;
fichier.open(nomFichier);
if (!fichier)
throw runtime_error("Le fichier d'entrée est inexistant!");
this->position = 0;
while (getline(fichier,ligneLue))
this->leFichier += ligneLue;
}
FichierBalises()
{
}
/* fichierBalisesFerme :
Ferme un fichier prealablement ouvert par fichierBalisesOuvre
*/
~FichierBalises()
{
fichier.close();
}
/* litProchaineBalise :
Renvoie la prochaine balise présente dans le fichier non encore retournée par litProchaineBalise.
Saute par-dessus d'éventuelles zones textuelles le cas échéant.
Lève une exception de type range_error lorsqu'on atteint la fin du fichier (avant qu'une balise n'ait commencé à être spécifiée)
(par exemple dans le cas d'un fichier se terminant par <TOTO attr1="toto">)
Lève une exception de type runtime_error lorsqu'on atteint la fin du fichier alors qu'une balise était en cours de lecture
(par exemple dans le cas d'un fichier se terminant par <TOTO attr1="toto")
*/
Balise litProchaineBalise()
{
string uneBalise = "";
while (leFichier[position] != '<' && position < leFichier.length())
position++;
if (position < leFichier.length())
do {
position++;
if (leFichier[position] == '<')
throw runtime_error("Caratère d'ouverture de balise à l'intérieur d'une balise!");
uneBalise += leFichier[position];
} while (leFichier[position] != '>' && position < leFichier.length());
return (Balise(uneBalise));
}
private :
ifstream fichier;
string leFichier;
int position;
}; |
je suis un petit peu perdu pour le moment, j'ai essayé plusieurs façon d'affecter ma classes... mais tous semble générer des erreurs
Merci à tous