This schema isn't all that I imagined. I have started my second Menu an edit menu which is also derived from Menu similar to MainMenu and must create EditMenu within the process_option() function of MainMenu. Ending edit I just return to MainMenu. The code is redundant the way I handle editmain.
In main I have:
Code:
Menu *ptrBaseMenu = new MainMenu(library);
  while((*ptrBaseMenu).get_option()!=6){
        (*ptrBaseMenu).set_option(-1);
        while (!((*ptrBaseMenu).validate_option((*ptrBaseMenu).get_option()))){
                (*ptrBaseMenu).display_menu();
                (*ptrBaseMenu).set_option((*ptrBaseMenu).input_option());
        }
        (*ptrBaseMenu).process_option((*ptrBaseMenu).get_option());
        
  }
in mainmenu.cpp my definitions for MainMenu I have:
Code:
void MainMenu::process_option(int noption)const{
    switch (noption){
        case 1:
                display_library(get_ptrLibrary());
                break;
        case 2: Menu *ptrEditMenu = new EditMenu(getptrLibrary());
                while((*ptrEditMenu).get_option()!=6){
                     (*ptrEditMenu).set_option(-1);
                      while (!((*ptrEditMenu).validate_option((*ptrEditMenu).get_option()))){
                            (*ptrEditMenu).display_menu();
                            (*ptrEditMenu).set_option((*ptrEditMenu).input_option());
                     }
                (*ptrEditMenu).process_option((*ptrEditMenu).get_option());
        
                }
                delete ptrEditMenu;
                break;
                
        case 3:
        case 4:
        case 5:
        case 6:
        default:
                break;
    }
}