Supportvragen Mac > Programmeren in bijvoorbeeld C(++), Cocoa, Java, BASIC, en Swift
[C++] Request for member which is of non-aggregate type?
minne:
Ik ben op het gebied van C++ reelijk 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:
--- Code: ---#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
--- Einde van code ---
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:
--- Code: ---#include <iostream.h>
#include "LinkedList.h"int main () {
LinkedList<int> list ();
list.add (5);
list.add (3);
cout << list.length () << endl;
return 0;
}
--- Einde van code ---
minne:
Stom foutje, ben er inmiddels uit :)
iPanda:
Nou? Vertel?
minne:
--- Code: ---LinkedList<int> list ();
--- Einde van code ---
Das een functiedefinitie. De haakjes moeten weg :D
iPanda:
Ik zoeken... en zoeken...In je main()!!Ik kon al niks geks ontdekken in je class.
Leuk eigenlijk, C++, templates zijn van na mijn tijd, moet het toch weer eens gaan oppakken.
Navigatie
[0] Berichtenindex
[#] Volgende pagina
Naar de volledige versie