How to make a menu with submenus?

This seems like the kind of job for structures and linked lists.

However, since you said

maybe you should try with a flat menu (only one level) first. Try to make a circular linked list first; then a doubly linked circular list (with next and previous pointers). At this point, you can add pointers to parent and child list to your structure, and you have the frame for a menu as deeply nested as you like (within reason). Draw the menu tree you want on paper first, that's a huge helper. If you have null pointers in your struct (e.g. the pointer to submenu when there are none), be careful when you dereference.

While we are at it, I suggest that you forgo the String class and go for c-strings instead.