C++ Design a class named Person and its two derived classes named Student and Employee.

Make Faculty and Staff derived classes of Employee. A person has a name, address, phone number, and e-mail address. A student has a class status (freshman, sophomore, junior, or senior). An employee has an office, salary, and datehired(MyDate type). Define a class named MyDate that contains the fields year, month, and day. A faculty member has office hours and a rank. A staff member has a title.

Define a constant virtual toString function in the Person class and override it in each class to display the class name and the person’s name.

Draw the UML diagram for the classes. Implement the classes. Write a test program that creates a Person, Student, Employee, Faculty, and Staff, and invokes their toString() functions.