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:ate()'
[Link error] undefined reference to 'Spectacle::Spectacle()'
[Link error] undefined reference to ''vtable for Represent()
[Link error] undefined reference to 'Date:ate()'
[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

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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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();
};