Tableau d'objet en paramètre d'un constructeur surchargé

Bonjour à tous,

Je suis en train de m'essayer à créer un menu pour un écran LCD 16x2.

Pour ce faire j'ai créé une classe GestionMenu qui contient elle même un tableau d'objet GestionMenu.

Ce qui donne au niveau du .h

class GestionMenu
{

public:

	GestionMenu(); // Constructeur de base
        GestionMenu(String titre, GestionMenu *subMenu[]); // Constructeur surchargé

private:

	GestionMenu *MyMenu[];
	
};

Au niveau du point .cpp cela donne :

GestionMenu::GestionMenu(String titre, GestionMenu *subMenu[])
{

	*MyMenu[] = subMenu;
}

Mon soucis est que cela ne fonctionne pas, et je ne voit pas pourquoi.
Quelqu'un peux m'expliquer comment passer une tableau d'objet dans une fonction ?

Merci à vous pour votre aide.
Vincent

Je ne sais pas trop répondre à ton problème par contre je peux te donner des conseils.
Evite d'utiliser des objets String ils occupent beaucoup de place en mémoire et sont la cause du fractionnement de l'espace mémoire en RAM ce qui tôt ou tard entraine des plantages.
Privilégie les tableaux de char. En plus, si les chaînes sont constantes tu peux les placer en flash au lieu d'occuper de la RAM ce qui est appréciables sur des processeurs avec peu de ressources.

Salut.

	GestionMenu *MyMenu[];

Je pense que tu veux déclarer un tableau de sous-menus, mais ton tableau a une taille nulle.
Ici un pointeur simple serait suffisant.

GestionMenu mainMenu = GestionMenu(“main”, subMenu);

class GestionMenu
{

public:

  GestionMenu(); // Constructeur de base
  GestionMenu(const char *titre, GestionMenu *subMenu);
private:

  const char *m_title;
  GestionMenu *m_subMenu;
};

GestionMenu::GestionMenu(const char *titre, GestionMenu *subMenu)
{
  m_title = titre;
  m_subMenu = subMenu;
}

GestionMenu subMenu[] = {
  GestionMenu("titre1", NULL),
  GestionMenu("titre2", NULL),
  GestionMenu("titre3", NULL),
  GestionMenu(NULL, NULL),                // sous-menu NULL signalant la fin du menu
};

GestionMenu mainMenu = GestionMenu("main", subMenu);

void setup() {
  // put your setup code here, to run once:

}

void loop() {
  // put your main code here, to run repeatedly:

}

Dis-moi si c’est ce type de construction imbriquée que tu cherches à obtenir.

Évite au maximum l’allocation dynamique (malloc, new, etc) et les String.

@+

Super ! C'est exactement ce dont j'avais besoin.

@fdufnews : Merci pour tes conseils :wink:

@+