Erreurs de compilation vtable
Bonjour, et deja merci de venir voir a quoi ressemble mon probleme !! :)
Je dois faire un programme en C++ pour mon examen, j'ai commencé, mais la je suis calé... Mais dans un de mes fichiers, j ai un soucis lors de la compilation, il me lache ces quelques erreurs :
Messages d'erreur
[Link error] undefined reference to 'vtable for Represent'
[Link error] undefined reference to 'Date::Date()'
[Link error] undefined reference to 'Spectacle::Spectacle()'
[Link error] undefined reference to ''vtable for Represent()
[Link error] undefined reference to 'Date::Date()'
[Link error] undefined reference to 'Spectacle::Spectacle()'
Id returned 1 exit status
(C'est à la compilation de repesent.cpp qu'il m'affiche ces sympathiques petites messages..)
Voila, je vous avoue que je ne suis pas très doué en C++ non plus :oops:
Je vais vous mettre mon code histoire que ce soit plus comprehensible peut etre...
D'avance merci à vous tous !! =) (en esperant que ca soitcomprehensible.. :s)
spectacle.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
| #include <iostream> // Required for stream output (cout).
#include <string>
#include "spectacle.h"
using namespace std;
int main()
{
Spectacle* sp = new Spectacle(new string("Castafiore"),new string("Un con"),new string("Une merde"));
sp->print();
sp->setTitre(new string("kaka"));
sp->print();
exit(0);
}
Spectacle::Spectacle(string *_titre, string *_auteur, string *_type) {
titre = *_titre;
auteur = *_auteur;
type = *_type;
}
Spectacle::Spectacle() {
titre = *new string("Non défini");
auteur = *new string("Non défini");
type = *new string("Non défini");
}
void Spectacle::print()
{
cout << "\n";
cout << "***************************************" << "\n";
cout << "\tSpectacle :" << "\n";
cout << "Titre :\t" << this->getTitre() << "\n";
cout << "Auteur :\t" << this->getAuteur() << "\n";
cout << "Type :\t" << this->getType() << "\n";
cout << "***************************************" << "\n";
}
string Spectacle::getTitre() {return titre;}
string Spectacle::getAuteur() {return auteur;}
string Spectacle::getType() {return type;}
void Spectacle::setTitre(string *_t) {titre = *_t;}
void Spectacle::setAuteur(string *_a) {auteur = *_a;}
void Spectacle::setType(string *_t) {type = *_t;} |
spectacle.h
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| using namespace std;
class Spectacle {
string titre;
string auteur;
string type;
public:
Spectacle();
Spectacle(string *titre,string *auteur,string *type);
virtual string getTitre();
virtual string getAuteur();
virtual string getType();
virtual void setTitre(string *_t);
virtual void setAuteur(string *_a);
virtual void setType(string *_t);
virtual void print();
}; |
date.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 59 60 61 62 63 64 65 66 67 68
|
#include <iostream> // Required for stream output (cout).
#include <string>
#include "date.h"
using namespace std;
int main()
{
Date* dt = new Date(1, 10, 2008, 13, 37);
dt->print();
dt->setJour(1);
dt->print();
exit(0);
}
Date::Date(int _jour, int _mois, int _annee, int _heure, int _minutes) {
jour = _jour;
mois = _mois;
annee = _annee;
heure = _heure;
minutes = _minutes;
}
Date::Date() {
jour = -1;
mois = -1;
annee = -1;
heure = -1;
minutes = -1;
}
void Date::print()
{
cout << "\n";
cout << "***************************************" << "\n";
cout << "\tDate :" << "\n";
cout << this->toString() << "\n";
cout << "***************************************" << "\n";
}
string Date::toString()
{
char buffer [50];
string dateStr;
sprintf(buffer,"%d/%d/%d a %d:%d",this->getJour(),this->getMois(),this->getAnnee(),this->getHeure(),this->getMinutes());
return buffer;
}
int Date::getJour() {return jour;}
int Date::getMois() {return mois;}
int Date::getAnnee() {return annee;}
int Date::getHeure() {return heure;}
int Date::getMinutes() {return minutes;}
void Date::setJour(int _j) {jour = _j;}
void Date::setMois(int _m) {mois = _m;}
void Date::setAnnee(int _a) {annee = _a;}
void Date::setHeure(int _h) {heure = _h;}
void Date::setMinutes(int _m) {minutes = _m;} |
date.h
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
|
using namespace std;
class Date {
int jour;
int mois;
int annee;
int heure;
int minutes;
public:
Date();
Date(int jour, int mois, int annee, int heure, int minutes);
virtual int getJour();
virtual int getMois();
virtual int getAnnee();
virtual int getHeure();
virtual int getMinutes();
virtual string toString();
virtual void setJour(int _j);
virtual void setMois(int _m);
virtual void setAnnee(int _a);
virtual void setHeure(int _h);
virtual void setMinutes(int _m);
virtual void print();
}; |
represent.cpp
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
#include <iostream> // Required for stream output (cout).
#include <string>
#include "represent.h"
using namespace std;
int main()
{
Represent* rp = new Represent();
exit(0);
}
Represent::Represent() {
this->dt = new Date();
this->sp = new Spectacle();
}
void Represent::print()
{
} |
Represent.h
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
using namespace std;
#include "date.h"
#include "spectacle.h"
class Represent {
Date* dt;
Spectacle* sp;
public:
Represent();
virtual Date* getDate();
virtual Spectacle* getSpectacle();
virtual void print();
}; |