class List { private: class Node { public: int data; Node * next; Node (int data, Node *next) { Node::data = data; Node::next = next; } }; Node *head; // Utility method to delete all elements of a list. void deleteList(); // Utility method to copy from one list to another. void copyFrom (const List &otherList); public: List () { head = NULL; }; List(const List &otherList); // copy constructor ~List (); // outputs list contents to cout void outputList () const; // adds a value to the list void insert (int value); List& operator=(const List &otherList); // operator= };