CS 340 - 2/18/13 The Big 3 - Copy Constructor - Overloaded Assignment Operator - Destructor If you have any dynamic data members of the class write all three. If you think you need to write one of the three, you mostlikely need all of the three. =================== A queue class implemented as a linked list of Nodes // queue.h #ifndef QUEUECLASS #define QUEUECLASS typedef int ElemType; #include class Queue; class Node { friend class Queue; friend ostream& operator<< (ostream&, const Queue&); private: ElemType elem_; Node * next_; Node (const ElemType&); }; class Queue { friend ostream& operator<< (ostream&, const Queue&); private: Node *front; Node *back; public: Queue(); Queue (const Queue&); Queue& operator= (const Queue&); ~Queue(); bool isEmpty () const; const ElemType& front() const; void insert (const ElemType&); void remove (); void clear (); }; ostream& operator<< (ostream&, const Queue&); #endif