Getting "undeclared member" error with derived class
Basically I have a base class that has its members in a protected block and when I try to access those items in the base class I get the error
Quote:
error: `child' undeclared (first use this function)
Code:
template <typename T>
class Node
{
protected:
T** child; //dynamically allocated T array.
T data;
size_t size;
public:
Node(size_t capacity) : size(capacity)
{
child = new T*[capacity];
for (size_t i = 0; i < capacity; ++i)
child[i] = NULL;
}
Node(size_t capacity, T x) : data(x), size(capacity)
{
child = new T*[capacity];
for (size_t i = 0; i < capacity; ++i)
child[i] = NULL;
}
virtual ~Node()
{
for(size_t i = 0; i < size; ++i)
delete child[i];
}
};
template <typename T>
class BinaryTreeNode : public Node<T>
{
public:
BinaryTreeNode() : Node<T>(2) { }
BinaryTreeNode(T x) : Node<T>(2, x) { }
~BinaryTreeNode()
{
delete child[0];
delete child[1];
}
};