-will give thumbs up directly after recieving answer.
- solve using C++
- please read NOTE1,2,3 CAREFULLY
- separate interface from implementation
Employee Types The following diagram illustrates the classes you will implement in this lab and their relationships. Private myDate (-) day Type: int (-) month Type: int (-) year Type: int (+) Parameterized Constructor (+) Setters (+) print Details : void Public Employee (-) Name Type: string Private (-) Nationality Type: string (-) experienceYears Type: int protected (#) HiringDate Type: myDate (+) Parameterized Constructor that takes 2 strings, 1 integer and 1 Public myDate object (+) Getter for the name (+) Print Details : void Secretary (-) Working Hours (-) Training Certificates (+) Parameterized Constructor (+) Print Details :void (+) ChangeHiringDate :void Type: int Type: string Manager (-) Title Type: string (-) is PhD Type: bool (+) Parameterized Constructor (+) Print Details :void (+) getName :oid NOTE 1: In all of your code, do not forget to make all functions that do not modify the class constant. NOTE 2: Do not put all of your code in one file; separate implementation from the interface. NOTE 3: Avoid duplication of code! If something is already done in the base class, do not do it again in the derived class. Implement class myDate as described in the UML diagram. Don't forget to validate the data members. The year should be between 1900 and now. Implement class Employee as described in the UML diagram. Notice that unlike all its data members, HiringDate is protected and not private in this class.. Function printDetails should print information about the employee in a well-formatted manner. Implement class Secretary, which inherits from class Employee. Note the following: The WorkingHours data member represents the working hours per day. The TrainingCertificate data member represent the name of the Training Certificate of the secretary. Function printDetails of the base class should be overridden to print the additional information about the Working Hours and Training Certificate. Function ChangeHiringDate should change the HiringDate of the base class according to the given parameter. The function take three integers that represent the day, the month and the year. Implement class Manager, which inherits from class Employee. Note the following: The title data member can be Miss or Mr. The isPhD data member will be true if the manger has a PhD. Function getName in the base class should be overridden to return the title + name. See sample output below Function printDetails of the base class should be overridden to print the additional information about whether the manager is PhD qualified or not and his title. Implement a driver program to test your code. - Create an object of type Secretary assign the appropriate values for each data member, and don't