salam
j'ai réalisé deux classes fac et mip sous linux dans les fichiers suivants:
fac.hpp
fac.cpp
mip.hpp
mip.cpp
et main.cpp
je compilé fac --> g++ -c fac.cpp --> ca passe
je compilé fac --> g++ -c mip.cpp --> ca passe
je compilé fac --> g++ -c main.cpp --> ca passe
mais lorsque je réalise l'exécutable main --> gcc -o main.o me donne des erreurs
fac.hpp
fac.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 class fac { private: int nbEtTotal; public: fac(); fac(int); void afficher(); };
mip.hpp
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 #include<iostream> #include"fac.hpp" using namespace std; fac::fac() { nbEtTotal=0.0; } fac::fac(int nbr) { nbEtTotal=nbr; } void fac::afficher() { cout<<"Le nombre total des étudiants = "<<nbEtTotal<<endl; }
mip.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 #include"fac.hpp" class mip : public fac { private: int nbEtTotalmip; float *note; public: mip(); mip(int); mip tri(); float nbEtdRss(); float nbEtdAj(); void afficher(); };
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
45
46
47
48
49
50
51
52
53
54
55
56
57 #include <iostream> #include "mip.hpp" using namespace std; mip::mip() { nbEtTotalmip=0; } mip::mip(int nbr) { nbEtTotalmip=nbr; note=new float[nbEtTotalmip]; cout<<"Donnez les "<<nbEtTotalmip<<"notes (mip)"<<endl; for(int i=0;i<nbEtTotalmip;i++) { cin>>note[i]; } } mip mip::tri() { float *notes=new float[nbEtTotalmip]; for(int i=0;i<nbEtTotalmip-1;i++) for(int j=i+1;j<nbEtTotalmip;j++) if(note[i]<note[j]) { notes[i]=note[j]; note[j]=0.0; } for(int i=0;i<nbEtTotalmip;i++) note[i]=notes[i]; } float mip::nbEtdAj() { float nbEtdA=0; for(int i=0;i<nbEtTotalmip-1;i++) if(note[i]<10) ++nbEtdA; return nbEtdA; } float mip::nbEtdRss() { float nbEtdRs=0; for(int i=0;i<nbEtTotalmip-1;i++) if(note[i]>=10) ++nbEtdRs; return nbEtdRs; } void mip::afficher() { cout<<"Nombre total d'etdiant (mip) = "<<nbEtTotalmip<<endl; nbEtTotalmip=tri().nbEtTotalmip; note=tri().note; cout<<"Les notes dans décroissant"<<endl; for(int i=0;i<nbEtTotalmip;cout<<note[i++]<<endl) cout<<"nb d'etudiant ajournr = "<<nbEtdAj()<<endl; cout<<"nb d'etudiant réussir = "<<nbEtdRss()<<endl; }
et voila l'erreur :
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 #include<iostream> #include"mip.hpp" using namespace std; int main() { int fc,mp,bg; cout<<"Donnez le nombre tot des etudiants de la fac : "; cin>>fc; fac fcc(fc); cout<<endl<<"Donnez le nombre tot des etudiants de mip : "; cin>>mp; mip mpp(mp); mpp.afficher(); return 0; }
g++ -o exect main.o
main.o: In function `main':
/home/user/Bureau/controle_poo/main.cpp:9: undefined reference to `fac::fac(int)'
/home/user/Bureau/controle_poo/main.cpp:12: undefined reference to `mip::mip(int)'
/home/user/Bureau/controle_poo/main.cpp:13: undefined reference to `mip::afficher()'
collect2: ld a retourné 1 code d'état d'exécution
Partager