I keep getting bizzare errors when trying to compile the following code..These are standard template classes.
I have the following two files:
BraidedNode.cpp
Code:
#include "BraidedNode.h"
template<class T> BraidedNode<T>::BraidedNode(T val) :
TreeNode<T>(val)
{
}
template<class T> *BraidedNode<T>::rchild(void) :
TreeNode<T>(val)
{
return (BraidedNode<T>*)_rchild;
}
template<class T> *BraidedNode<T>::lchild(void) :
TreeNode<T>(val)
{
return (BraidedNode<T>*)_lchild;
}
template<class T> *BraidedNode<T>::next(void) :
TreeNode<T>(val)
{
return (BraidedNode<T>*)_next;
}
template<class T> *BraidedNode<T>::prev(void) :
TreeNode<T>(val)
{
return (BraidedNode<T>*)_prev;
}
BraidedNode.h
Code:
#ifndef _BraidedNode_h
#define _BraidedNode_h
#include <stdio.h>
#include "Node.h"
#include "TreeNode.h"
template<class T>class BraidedNode : public Node, public TreeNode<T>
{
public:
BraidedNode(T);
BraidedNode<T> *rchild(void);
BraidedNode<T> *lchild(void);
BraidedNode<T> *next(void);
BraidedNode<T> *prev(void);
//friend class BraidedSearchTree<T>;
};
and the error I get is:
Code:
BraidedNode.cpp:8: error: ISO C++ forbids declaration of ‘rchild’ with no type
BraidedNode.cpp:8: error: prototype for ‘int* BraidedNode<T>::rchild()’ does not match any in class ‘BraidedNode<T>’
BraidedNode.h:12: error: candidate is: BraidedNode<T>* BraidedNode<T>::rchild()
BraidedNode.cpp:8: error: template definition of non-template ‘int* BraidedNode<T>::rchild()’
BraidedNode.cpp: In member function ‘int* BraidedNode<T>::rchild()’: