Ik ben op het gebied van C++ redelijk nieuw, heb tot nu toe alleen Java gedaan. Ik ben nu C++ aan het leren, en ik dacht van: ik ga eens een LinkedList schrijven. Ik heb de volgende header-file:
Deze heb ik natuurlijk geimplementeerd in een .cpp-file, dat compileert ook allemaal. Maar als ik m'n main.cpp probeer te compileren, zegt ie "main.cpp:6: request for member `add' in `list()', which is of non-aggregate type `LinkedList<int> ()()'". Wat betekent dit, en wat doe ik fout?
Dit is m'n main.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
| #ifndef LINKEDLIST_H #define LINKEDLIST_H template <class T> class LinkedList { // Nested class Node class Node { private: T m_object; Node* m_nextNode; public: // Constructors Node (); Node (T object); Node (T object, Node* nextNode); // Destructor ~Node (); // Member access functions T& get (); Node* getNext (); void setNext (Node* nextNode); }; private: Node m_firstNode; public: // Constructors LinkedList (); LinkedList (T object); LinkedList (const LinkedList& list); // Access functions T& get (int index); void remove (int index); void add (T object); void addAtIndex (T object, int index); int length (); }; #endif |
Deze heb ik natuurlijk geimplementeerd in een .cpp-file, dat compileert ook allemaal. Maar als ik m'n main.cpp probeer te compileren, zegt ie "main.cpp:6: request for member `add' in `list()', which is of non-aggregate type `LinkedList<int> ()()'". Wat betekent dit, en wat doe ik fout?
Dit is m'n main.cpp:
C++:
1
2
3
4
5
6
7
8
9
10
| #include <iostream.h> #include "LinkedList.h" int main () { LinkedList<int> list (); list.add (5); list.add (3); cout << list.length () << endl; return 0; } |
[ Voor 14% gewijzigd door Verwijderd op 16-09-2003 14:56 ]