Q:

Identifier not found

So for my assignment, I am supposed to implement a Node class that just contains data and pointers to its two siblings and a BinaryTree that reads in these Nodes and creates a binary tree out of them. My problem is pointing to the root of the Tree does not seem to work. Any help you can provide would be appreciated! 
Note: The error is found a few lines into the addNode method in the BinaryTree.cpp file which can be found at the end of the question. Also, I am not able to access the value of size either, so I believe this is some sort of weird scope issues I cannot resolve. I also cannot use the "this" keyword in the addNode function.
I am also not allowed to use structs, per my homeworks' instruction.
Node.H
#include <iomanip>

using namespace std;

class Node
{

    public:
      int data;
      Node* leftChild;
      Node* rightChild;
      Node(int data, Node* leftChild, Node* rightChild);

};

Node.cpp
#include <iomanip>
#include <iostream>
#include "Node.h"

using namespace std;

Node::Node(int data, Node* leftChild, Node* rightChild)
{
    this->data = data;
    this->leftChild = leftChild;
    this->rightChild = rightChild;
}

BinaryTree.H
#include <iomanip>
#include "Node.h"

using namespace std;

class Tree
{

public:
    Tree(int data);
    void addNode(int data);
    void inOrder(Node* N);

protected:
    Node* root;
    int size;
    int data;

private:
    int printNode(Node* N);

};

BinaryTree.cpp
#include <iostream>
#include <iomanip>
#include "BinaryTree.h"

using namespace std;

//Tree constructor. Sets the values of data, size, and root. 

Tree::Tree(int data)
{
    this->data = data;
    this->size = 0;
    this->root = new Node(data, NULL, NULL);
}

//Adds a node to the current Tree.
void addNode(int data)
{

    Node* tempNode = new Node(data, NULL, NULL);
    Node* current = root; //THIS IS THE ERROR LINE.

    while(current!=NULL)
    {
        //If the data we are trying to add is already in the Tree
        if(current->data == tempNode->data)
        {
            cout << "Data already in the Tree.";
        }

        //If the data for the new node is larger than the old
        else if(current->data < tempNode->data)
        {
            //See if the right child is null. If so, add the tree node there.
            if(current->rightChild == NULL)
            {
                current->rightChild = tempNode;

                return;
            }

            //Otherwise, traverse down the right tree.
            else
            {
                current = current->rightChild;
            }
        }

        //The data is smaller than the current node
        else
        {
            //See if the left child is null. If so, add the tree node there.
            if(current->leftChild == NULL)
            {
                current->leftChild = tempNode;
                return;
            }

            //Otherwise, traverse down the left tree
            else
            {
                current = current->leftChild;
            }
        }//End of leftChild Else

    }//End of while

}//End of addNode

A:

void addNode(int data)

should be:
void Tree::addNode(int data)

as it is a member function of class Tree

