Note : you should not use STL for this assigment (string or vectors). Question 1 (50 points) ---------- Write a simple string class. Your string class should have these public methods: default constructor destructor copy constructor append( char ch ) getCharAt( unsigned int i ) clear() length() private methods: grow() // double the capacity private data: length // current length of string capacity // size of data array data // array of char Start the string off with a default capacity of only 8 chars. Each time the capacity needs to be increased, double the capacity. Use a header file for your string class declaration and a cc file for its implementation. Write a program, StringTester.cc, that tests your class and causes all code paths to be exercised. Question 2 (50 points) ---------------------- Implement a Stack class. It should have the following public methods default constructor destructor copy constructor void push(const int& item) // pushed item into the stack int pop() // pops out the top element from the bool isEmpty() // returns whether the stack is empty bool isFull() // returns whether the stack is full private variables int size // size of the array storing the stack int top // stop of the stack int *array; // array to hold the stack elements Use a header file for your stack class declaration and a cc file for its implementation. The default size of the stack should be 10. Write a program, StackTester.cc, that tests your class and causes all code paths to be exercised.