C++ 10.14 LAB: Book information (overriding member functions) Given main() and a base Book class, define a derived class called Encyclopedia with member functions to get and set private class data members of the following types: - string to store the edition - int to store the number of pages Within the derived Encyclopedia class, define a PrintInfo() member function that overrides the Book class' PrintInfo() function by printing the title, author, publisher, publication date, edition, and number of pages. Ex. If the input is: the output is: main.cpp #include "Book.h" #include "Encyclopedia.h" #include #include using namespace std; int main() { Book myBook; Encyclopedia myEncyclopedia; string title, author, publisher, publicationDate; string eTitle, eAuthor, ePublisher, ePublicationDate, edition; int numPages; getline(cin, title); getline(cin, author); getline(cin, publisher); getline(cin, publicationDate); getline(cin, eTitle); getline(cin, eAuthor); getline(cin, ePublisher); getline(cin, ePublicationDate); getline(cin, edition); cin >> numPages; myBook.SetTitle(title); myBook.SetAuthor(author); myBook.SetPublisher(publisher); myBook.SetPublicationDate(publicationDate); myBook.PrintInfo(); myEncyclopedia.SetTitle(eTitle); myEncyclopedia.SetAuthor(eAuthor); myEncyclopedia.SetPublisher(ePublisher); myEncyclopedia.SetPublicationDate(ePublicationDate); myEncyclopedia.SetEdition(edition); myEncyclopedia.SetNumPages(numPages); myEncyclopedia.PrintInfo(); return 0; } Book.h #ifndef BOOKH #define BOOKH #include using namespace std; class Book { public: void SetTitle(string userTitle); string GetTitle(); void SetAuthor(string userAuthor); string GetAuthor(); void SetPublisher(string userPublisher); string GetPublisher(); void SetPublicationDate(string userPublicationDate); string GetPublicationDate(); void PrintInfo(); protected: string title; string author; string publisher; string publicationDate; }; #endif Book.cpp #include "Book.h" #include void Book::SetTitle(string userTitle) { title = userTitle; } string Book::GetTitle() { return title; } void Book::SetAuthor(string userAuthor) { author = userAuthor; } string Book::GetAuthor() { return author; } void Book::SetPublisher(string userPublisher) { publisher = userPublisher; } string Book::GetPublisher() { return publisher; } void Book::SetPublicationDate(string userPublicationDate) { publicationDate = userPublicationDate; } string Book::GetPublicationDate() { return publicationDate; } void Book::PrintInfo() { cout << "Book Information: " << endl; cout << " Book Title: " << title << endl; cout << " Author: " << author << endl; cout << " Publisher: " << publisher << endl; cout << " Publication Date: " << publicationDate << endl; } Encyclopedia.h #ifndef ENCYCLOPEDIAH #define ENCYCLOPEDIAH #include "Book.h" class Encyclopedia : public Book { // TODO: Declare mutator functions - // SetEdition(), SetNumPages() // TODO: Declare accessor functions - // GetEdition(), GetNumPages() // TODO: Declare a PrintI.