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
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
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
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;
}
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
#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;
}
Je n'ai pas eu le temps de faire une mise en forme 100% C++

Pour ce qui est des erreurs, voici ce que j'ai à la compilation :
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
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