I'm terrible with pointers and need help passing an object to a library I'm writing. I'm getting the error no known conversion for argument 1 from 'LCDMenuItem*' to 'int*' when I try to compile. How do I pass a pointer to an object to a function?
LCDMenu.h
class LCDMenu {
public:
bool addItem(LCDMenuItem &item);
private:
LCDMenuItem *menuItems[MAX_ITEMS];
uint8_t itemCount;
};
class LCDMenuItem {
public:
LCDMenuItem(char *name);
bool setFunction(void (*function)(void));
private:
bool callFunction() const;
void (*_function)(void);
char *name;
};
LCDMenu.cpp
bool LCDMenu::addItem(LCDMenuItem &item) {
menuItems[itemCount] = &item;
...
}
MySketch.ino
LCDMenuItem menuItem("Menu Option");
void setup() {
menu.addItem(menuItem);
}
When trying to compile
bool addItem(LCDMenuItem *item); ^no known conversion for argument 1 from 'LCDMenuItem*' to 'int*'
menuItemand where isbool addItem(LCDMenuItem *item);?menuItems? its an array ofLCDMenuItem's addItem() is in LCDMenu.cppmenu.addItem(menuItem);menuItem. do you have the classes in that order in .h file?bool addItem(LCDMenuItem *item);reported by compiler is where?