Salut
J'ai fait ce petit programme pour le plaisir mais je suis incapable de trouver d'où vient mon erreur
J'ai découper mon programme en 3 morceaux que voici :
epargne.h
epargne.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 #ifndef EPARGNE_H #define EPARGNE_H class Compte_epargne { public: Compte_epargne(const char *, const char *, double = 0.0); ~Compte_epargne(); const char *lecture_prenom() const; const char *lecture_nom() const; void calcul_interet_mensuel(); static void modifier_interet(double); void afficher_solde() const; private: double solde_epargne; static double taux_interet_annuel; char *prenom; char *nom; }; #endif
main.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 #include <iostream> #include <cstring> #include <cassert> #include "epargne.h" using namespace std; Compte_epargne::Compte_epargne(const char *premier, const char *dernier, double solde) { prenom = new char[ strlen( premier ) +1 ]; assert( prenom != 0 ); strcpy( prenom, premier ); nom = new char[ strlen( dernier ) +1 ]; assert( nom != 0 ); strcpy( nom, dernier ); solde_epargne = solde; } Compte_epargne::~Compte_epargne() { delete prenom; prenom = 0; delete nom; nom = 0; } const char *Compte_epargne::lecture_prenom() const { return prenom; } const char *Compte_epargne::lecture_nom() const { return nom; } void Compte_epargne::calcul_interet_mensuel() { solde_epargne *= (taux_interet_annuel / 12.0); } void Compte_epargne::modifier_interet(double nouvel_interet) { taux_interet_annuel = nouvel_interet; } void Compte_epargne::afficher_solde() const { cout << solde_epargne; }
Je n'ai pas eu le temps de faire une mise en forme 100% C++
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 #include <iostream> #include "epargne.h" using namespace std; int main() { Compte_epargne *epargnant1 = new Compte_epargne("Suzanne", "Bedard", 2000.00); // Compte_epargne *epargnant2 = new Compte_epargne("Robert", "Minet", 3000.00); // cout << "L'employé " << epargnant1->lecture_nom() << " " << epargnant1->lecture_prenom() << " dispose d'un solde de "; // epargnant1->afficher_solde(); delete epargnant1; // epargnant1 = 0; return 0; }
Pour ce qui est des erreurs, voici ce que j'ai à la compilation :
Si quelqu'un sait ce qui ne va pas, je suis preneur sachant que je voulais tester la partie static double afin d'éviter d'avoir des champs identique dans tous les sens
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 CMakeFiles/epargne.dir/epargne.o: In function `Compte_epargne::calcul_interet_mensuel()': epargne.cpp:(.text+0x38): undefined reference to `Compte_epargne::taux_interet_annuel' CMakeFiles/epargne.dir/epargne.o: In function `Compte_epargne::modifier_interet(double)': epargne.cpp:(.text+0x6e): undefined reference to `Compte_epargne::taux_interet_annuel' collect2: ld a retourné 1 code d'état d'exécution make[2]: *** [epargne] Erreur 1 make[1]: *** [CMakeFiles/epargne.dir/all] Erreur 2 make: *** [all] Erreur 2
Partager