Bonjour,
Ma classe date ne fonctionne pas pourtant je crois que je l'ai bien implémentée.
voilà le code de date.h
et voilà date.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 #if !defined(__DATE__H__) #define __DATE__H__ #include <iostream> class Date{ public: Date(); Date(int j, int h, int m); bool operator <(const Date& date) const; bool operator <=(const Date& date) const; private: int jours; int heures; int minutes; friend std::ostream& operator << (std::ostream&, const Date& date); friend std::istream& operator >> (std::istream&, Date& date); }; #endif
voilà le résultat de la compilation:
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 #include "date.h" #include <cstdio> #include <iomanip> #include <assert.h> #include<iostream> Date::Date() { jours= 0; heures= 0; minutes= 0; } Date::Date(int j,int h,int m){ jours = j; heures = h; minutes = m; } bool Date::operator <(const Date& d) const{ return (this->jours < d.jours); return (this->heures < d.heures); return (this->minutes < d.minutes); } bool Date::operator <=(const Date& d) const{ return (this->jours <= d.jours); return (this->heures <= d.heures); return (this->minutes <= d.minutes); } std::ostream& operator << (std::ostream& os, const Date& d){ int jours, heures, minutes; //completed jours = d.jours; heures = d.heures; minutes = d.minutes; char chaine[40]; sprintf(chaine, "%dj_%02dh%02dm", jours, heures, minutes); os << chaine; return os; } std::istream& operator >> (std::istream& is, Date& d){ char chaine[40]; int jours, heures, minutes; char j, m, h, underscore; is >> jours >> j >> underscore >> heures >> h >> minutes >> m; assert(j=='j'); assert(underscore=='_'); assert(h=='h' && m=='m'); // completed :utiliser les variable jours,heures,minutes pour modifier l'objet d. d.jours = jours; d.heures = heures; d.minutes = minutes; return is; }
testdate.cpp: (.text+0xe5): référence indéfinie vers « Date:: Date() »
testdate.cpp: (.text+0xfe): référence indéfinie vers « operator>>(std::istream&, Date&) »
testdate.cpp: (.text+0x11f): référence indéfinie vers « operator<<(std::ostream&, Date const&) »
testdate.cpp: (.text+0x215): référence indéfinie vers « Date::operator<(Date const&) const »
testdate.cpp: (.text+0x2b0): référence indéfinie vers « operator<<(std::ostream&, Date const&) »
testdate.cpp: (.text+0x2c8): référence indéfinie vers « operator<<(std::ostream&, Date const&) »
testdate.cpp: (.text+0x337): référence indéfinie vers « Date::operator<(Date const&) const »
testdate.cpp: (.text+0x3d2): référence indéfinie vers « operator<<(std::ostream&, Date const&) »
testdate.cpp: (.text+0x3ea): référence indéfinie vers « operator<<(std::ostream&, Date const&) »
testdate.cpp: (.text+0x447): référence indéfinie vers « Date::operator<(Date const&) const »
testdate.cpp: (.text+0x4df): référence indéfinie vers « operator<<(std::ostream&, Date const&) »
testdate.cpp: (.text+0x4f7): référence indéfinie vers « operator<<(std::ostream&, Date const&) »
collect2: error: ld returned 1 exit status
Est ce que quelqu'un peut m'aider sur ça SVP.Merci davance.
Partager