Provide copy constructor, destructor, and assignment operator for the IntList class that stores a collection of integers using linked list. class ListNode { int value; ListNode * next; }; class IntList { public: ... IntList(const IntList & other); ~IntList(); IntList& operator =( const IntList & other ) ... private: int num; //the number of ints stored. ListNode * first; }; Solution Hi, I have implemented all functionality. Please test it in your test program using namespace std; class ListNode { public: int value; ListNode * next; }; class IntList { public: IntList(); IntList(const IntList & other); ~IntList(); void operator =( const IntList & other); private: int num; //the number of ints stored. ListNode * first; }; IntList::IntList(const IntList & other){ IntList *ptr = new IntList(); ListNode *temp = other.first; ListNode *temp1 = ptr->first; ListNode *firstLocal = NULL; while(temp != NULL){ if(firstLocal == NULL){ firstLocal = temp; temp1 = firstLocal; } else{ temp1->next = temp; temp1 = temp; } temp = temp->next; } ptr->first = firstLocal; ptr->num = other.num; } IntList::~IntList(){ while(first != NULL){ ListNode *local = first; first = first->next; delete local; } } IntList::IntList(){ first = NULL; num = 0; } void IntList::operator =( const IntList & other){ first = other.first; num = other.num; } .