Hi,
I wrote a template for a double linked list and i try to dynamically allocate an array where each element is a list from that template, but when i try to insert an element i get a compilation error and i don't understand the reason for getting this.
Here's the code:
template array definition:
Code:List <gift> *buckets;
inserting the element:
element insertion codeCode:gift * newGift; ... ... buckets[pos].insertNode (*newGift);
and compiler error:Code:template <class contain> int List<contain>::insertNode (contain &element) { ListNode <contain> *temp, *newNode; // if first element allocate first pointer. if (!size) { list = new ListNode <contain> (element); lastNode = list; return ++size; } //else traverse the list and insert element at the end. temp = list; while (temp -> getNext()) temp = temp -> getNext(); //if memory allocation error return 0 if (!(newNode = new ListNode <contain> (element))) return 0; temp -> setNext (newNode); lastNode = newNode; return ++size; // else return the size of the list }
If any additional information is needed please let me know.Code:list.cpp: In member function ‘int List<contain>::insertNode(contain&) [with contain = gift]’: santa.cpp:41: instantiated from here list.cpp:48: error: could not convert ‘temp->ListNode<contain>::getNext [with contain = gift]()’ to ‘bool’ list.cpp:49: error: cannot convert ‘ListNode<gift>’ to ‘ListNode<gift>*’ in assignment
Thanks in advance.




Reply With Quote
