Bonjour,

J'ai codé deux fichiers salarie.cpp et salarie.h.

Lorsque je compile avec g++ , il me met comme message d'erreur référence indéfinie.
J'ai beau cherché sur le forum et je ne trouves pas. Pourriez vous m'expliquer pourquoi il fait des références indéfinies??


Voici ma classe qui pose problème

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
#ifndef _salarie_H
 
#define _salarie_H
 
#include <iostream>
#include "personnel.h"
#include "date.h"
using namespace std;
 
class salarie: public personnel
{  
	 protected:
		//la date d'embauche
 
     		  date e; 
		// le salaire
 
      		 int salaire;
		//le nb de jours travaillées
 
    		   int nbtravail;
		//en congé ou non
 
   		    bool enconge;
 
		salarie *prec;
		salarie *suivant;
 
 
 
       public:
		//constructeur par défaut
	      salarie();
		// constructeur spécialisé
 
              salarie(char* ,char* ,int, int, date,  int, bool);
 
		//fonction augmente le salaire
 
              int augmentesalaire(int );
		// calcule le nb de rtt ayant droits
 
              double rtt();
		//ajoute un nombre de jours travaillés
 
              int ajoutenbtravail(int );
		//vérifie qu on peut prendre congé
	      bool prendreconge(int);
		//remet a jour l attr encongé
 
              bool finconge();
		// compare deux salaires
	      bool operator <(const salarie &);
		//affiche 
 
    	      friend ostream & operator << (ostream &, const salarie &);
		//saisie
 
	      friend istream & operator >> (istream &, salarie &);
 
 
};
#endif
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#include "salarie.h"
#include "date.h"
#include "personnel.h"
#include <iostream>
#include <math.h>
using namespace std;
 
//constructeur salarie
salarie::salarie(char* x, char* y, int z, int s, date d, int nbt, bool c):personnel(x,y,z)
{
	e= d;
	salaire=s;
	nbtravail=nbt;
	enconge=c;
	prec=NULL;
	suivant=NULL;
 
}
//constructeur par défaut
salarie::salarie():personnel()
{
}
// on augmente le salaire de la valeur passé en paramètre
int salarie::augmentesalaire(int aug)
{
	salaire=salaire+aug;
}
//calcule le nb de RTT ou x est le nombre de jours travaillés
double salarie::rtt()
{
	return ceil(nbtravail/15);//arrondi a l entier le plus proche au dessu
}
//ajoute un nombre de jour travaillés
int salarie::ajoutenbtravail(int x)
{
	nbtravail=nbtravail+x;	
}
//on verifie qu'il peut prendre conge. Si c'est le cas , on les déduit de son quota.
bool salarie::prendreconge(int jdem) //prend en paramètre un certains nombre de jours demandés
{
	//on test si les jours demandés sont inférieurs aux jours acquis
	if (rtt()<jdem)
	{
		return 0;	
	}
	else
	{
		int res;
		res= -(jdem*15);
		ajoutenbtravail(res);
		enconge = true;
		return 1;
	}
}
// on remet l'employe en travail et no,n plus en congé
bool salarie::finconge()
{
	enconge=false;	
}
// on compare la date des employés
bool salarie::operator <(const salarie & s)
{
	if (e<s.e)
	{
		return true;
	}
	else
	{
		return false;
	}
}
//fonction d'affichage par surcharge
ostream & operator <<(ostream & f, const salarie & s)
{
	return f<< "Date d embauche: " << s.e << '\n' << "Nom: " << s.nom << '\n' << "Prenom: " << s.prenom << '\n' << "Tel: " <<s.tel << '\n' << "Salaire: " << s.salaire << '\n' << "Nb de jours travailles: " << s.nbtravail << '\n' << "En conge? " << s.enconge << endl;
 
}
// fonction de saisie par surcharge
istream & operator >>(istream & f, salarie & s)
{
	/*char w[50];
 
	cout << "Entrez le nom: " ;
	f >> w;
	s.nom=new char[strlen(w)+1];
	strcpy(s.nom,w);
	cout << "Entrez le prenom: " ;
	f >> w;
	s.prenom=new char[strlen(w)+1];
	strcpy(s.prenom,w);
	cout << "Entrez le numero de telephone: ";
	f >> s.tel;*/
	cout << "Entrez la date d embauche: ";
	f >> s.e;
	cout << "Entrez le nombres de jours travaillés: ";
	f >> s.nbtravail;
	cout << "Entrez le salaire: ";
	f >> s.salaire;
	return f;	
}

D'avance je vous remercie.