Ik ben bezig met een practicum opdracht voor school en daarvoor heb ik een stukje C++ geschreven. Wanneer ik het project probeer te compilen krijg ik de volgende foutmelding:
[Linker error] undefined reference to 'Creditcard::Creditcard(char const*, int, double)'
Ik heb wat research op internet gedaan maar kom er zelf niet uit, ik heb al geprobeerd alle files te rebuilden met de "Rebuild All" functie van Dev-C++. Waarschijnlijk is het een heel klein probleempje maar op gebied van C++ ben ik echt nog een leek, wie kan mij een zetje in de goede richting helpen?
Hieronder de bestanden:
Creditcard.h
Creditcard.cpp
CreditcardApp.cpp
[Linker error] undefined reference to 'Creditcard::Creditcard(char const*, int, double)'
Ik heb wat research op internet gedaan maar kom er zelf niet uit, ik heb al geprobeerd alle files te rebuilden met de "Rebuild All" functie van Dev-C++. Waarschijnlijk is het een heel klein probleempje maar op gebied van C++ ben ik echt nog een leek, wie kan mij een zetje in de goede richting helpen?
Hieronder de bestanden:
Creditcard.h
C++:
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
| #ifndef CLOCK_H #define CLOCK_H class Creditcard { public: // Constructors Creditcard(const char nm[], int id, double cred); // Copy constructor Creditcard(const Creditcard & c); // Destructor ~Creditcard(void); // Public operations void print(void); double getCredit(void); void pay(double am); void load(double am); private: char* name; int id; double credit; }; #endif |
Creditcard.cpp
C++:
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 <iomanip> #include "Creditcard.h" using namespace std; //////////////////////////////////////////////////////// // Three parameter constructor // Creditcard::Creditcard(const char nm[], int id, double cred) : id(id), credit(cred) { cout << "Calling constructor for Creditcard" << endl; name = new char [strlen (nm) + 1]; strcpy (name, nm); } // Copy constructor // Creditcard::Creditcard(const Creditcard & c) : id(c.id), credit(c.credit) { cout << "Calling copy-constructor for Creditcard" << endl; name = new char [strlen (c.name) + 1]; strcpy(name, c.name); } // Destructor // Creditcard::~Creditcard(void) { cout << "Calling destructor for Creditcard" << endl; delete [] name; } void Creditcard::print(void) { cout << "name " << name; cout << "id " << id; cout << "credit " << credit; } double Creditcard::getCredit(void) { return credit; } void Creditcard::pay(double am) { credit = credit - am; } void Creditcard::load(double am) { credit = credit + am; } |
CreditcardApp.cpp
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
| #include <iostream> #include "Creditcard.h" using namespace std; int main(void) { //Create a Creditcard object with operator new: Creditcard * pCreditcard = new Creditcard ("Maarten", 1, 10.00); return 0; } |