hi guys,
i get the following error when i try to create a new TreeNode
-
error C2514: 'TreeNode' : class has no constructors
-
this error is caused by the following line:
-
treeObj->root = new TreeNode(oneline.c_str());
-
and i have declared the following as a global variable:
-
TreeNode<char> *treeNodeObj = NULL;
-
i am very puzzled abt this because my constructor has already been declared...
i have attached the code for the TreeNode.h below:
-
#pragma once
-
#include <iostream>
-
#include <fstream>
-
#include <string>
-
#include <deque>
-
#include <queue>
-
using namespace std;
-
-
template <class T>
-
class TreeNode
-
{
-
public:
-
TreeNode<T>(T newItem);
-
~TreeNode<T>(void);
-
void setItem(T newItem);
-
void setLeft(TreeNode *newLeft);
-
void setRight(TreeNode *newRight);
-
T getItem();
-
TreeNode<T>* getLeft();
-
TreeNode<T>* getRight();
-
bool IsSameNode(T c);
-
T item;
-
-
private:
-
TreeNode *left;
-
TreeNode *right;
-
};
-
-
-
template <class T>
-
TreeNode<T>::TreeNode(T newItem)
-
{
-
item = newItem;
-
left = NULL;
-
right = NULL;
-
}
-
-
template <class T>
-
TreeNode<T>::~TreeNode(void)
-
{
-
}
-
-
-
template <class T>
-
void TreeNode<T>::setItem(T newItem)
-
{
-
// set methods
-
item = newItem;
-
}
-
-
template <class T>
-
void TreeNode<T>::setLeft(TreeNode *newLeft)
-
{
-
left = newLeft;
-
}
-
-
template <class T>
-
void TreeNode<T>::setRight(TreeNode *newRight)
-
{
-
right = newRight;
-
}
-
-
template <class T>
-
T TreeNode<T>::getItem()
-
{
-
// get methods
-
return item;
-
}
-
-
template <class T>
-
TreeNode<T>* TreeNode<T>::getLeft()
-
{
-
return left;
-
}
-
-
template <class T>
-
TreeNode<T>* TreeNode<T>::getRight()
-
{
-
return right;
-
}
-
-
template <class T>
-
bool TreeNode<T>::IsSameNode(T c)
-
{
-
return this->item == c;
-
}
-
any help or suggestion is appreciated so please leave a comment below and i will reply within 5 mins cos i will check this forum every 5mins..
thanks :)