IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Problème de référence indéfinie


Sujet :

C++

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    231
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 231
    Points : 75
    Points
    75
    Par défaut Problème de référence indéfinie
    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.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    231
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 231
    Points : 75
    Points
    75
    Par défaut
    J'ai trouve j 'ai inclue dans salarie.cpp les fichiers personnel.cpp et date.cpp au lieu des points h.

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de référence indéfinie
    Par Thibaut Marmin dans le forum Eclipse C & C++
    Réponses: 1
    Dernier message: 07/04/2011, 12h26
  2. Problème de compilation: Référence indéfinies
    Par richard_sraing dans le forum C++
    Réponses: 4
    Dernier message: 05/07/2007, 10h49
  3. [FLASH MX2004] this et problème de référence
    Par cristolb dans le forum ActionScript 1 & ActionScript 2
    Réponses: 5
    Dernier message: 03/05/2006, 22h33
  4. Problème de référence de données circulaire
    Par Wismerhill50 dans le forum Langage
    Réponses: 3
    Dernier message: 23/10/2005, 22h38
  5. problème de références _ptr dans une map STL
    Par Mr_Tyu dans le forum CORBA
    Réponses: 1
    Dernier message: 10/08/2004, 10h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo