Interface-like definition in Arduino?
class Screen {
public:
   virtual void drawScreen() = 0;  // Needs to be implemented by each subclass

   virtual ~Screen() {}            // Destructor
};

class LanguageScreen : public Screen {
public:
   virtual void drawScreen();
};

class MainScreen : public Screen {
public:
   virtual void drawScreen();
};

void LanguageScreen::drawScreen() {
   // Draw language screen
}

void MainScreen::drawScreen() {
   // Draw main screen
}

MainScreen     mainScreen;
LanguageScreen languageScreen;
Screen *const  screens[2]   = {&amp;mainScreen, &amp;languageScreen};
int            currenScreen = 0;