Nein, Deine Klasse "MenuFrame" hat ein Member-Variable die kein Objekt der Klasse LiquidCrystal ist, sondern nur ein Zeiger darauf.
Also statt
LiquidCrystal myLCD;
einfach
LiquidCrystal *myLCD = 0;
Zusätzlich bekommt Deine Klasse einen Konstruktor
MenuFrame::MenuFrame(LiquidCrystal *lcd) {
this->myLCD = lcd;
}
Damit kann beim Erzeugen von MenuFrame das LCD gleich übergeben werden.
Zusätzlich kannst Du das aber auch Deine Klasse machen lassen:
MenuFrame::MenuFrame(uint8_t a, uint8_t b, uint8_t c, uint8_t d, uint8_t e, uint8_t f) {
this->myLCD = new LiquidCrystal(a,b,c,d,e,f);
}
Damit kann der Nutzer selbst entscheiden, ob er Deine Klasse das LCD erzeugen lassen will, oder ob er sein eigenes Objekt übergibt. Ein weiterer Vorteil ist, das im Fall das mehr als ein MenuFrame Objekt erzeugt wird, das gleiche LiquidCrystal Objekt an beide übergeben werden kann, was wieder Speicher spart.
Wichtig ist, das Du innerhalb Deiner Klasse die LCD-Methoden dann mit dem "->" Operator und nicht mehr mit dem "." Operator ansprechen musst.
statt
myLCD.setCursor(0, 1);
jetzt
myLCD->setCursor(0, 1);