This lab will require that you take your list data structure from lab 2, and turn it into a C++ class. To do this, start by creating a class called List_[username], where [username] is replaced with your actual username. Make sure you have the necessary data members, and convert your functions from lab 2 to class member functions. I would recommend keeping a head pointer and a tail pointer as data members. To this class, in addition to the functions you already have, add the following: int Count(): returns the number of items in the list bool IsEmpty(): returns a boolean indicating whether the list is empty A default constructor which takes no arguments. A constructor which takes an initial value to place in the list. A constructor which takes a vector of values, all of which should be inserted into the list. A default destructor, which should make use of your delete function (either iterative or recursive). Keep in mind that for none of these functions are you required to pass the head pointer. You simply create an instance of the List class (such as List l), and call the functions as l.function(). For 25 points, write both a copy constructor, as well as an output function for the list. For an additional 15 points extra credit, overload the = and << operators (to be discussed next week). Hand in the header file, as well as a tester program. In order to simplify things, create a bzipped tar ball of your files using the following command: tar cjvf lab4[username].tar.bz2 [header.h] [driver.cpp] Where [username] is your username, and [header.h] and [driver.cpp] are replaced with the names of your files (which should have your username as part of them).