Bonjours,
J'esaye de programmer deux classes de menu. L'architecture est la suivantes :
Une classe Menu
class Menu
{
public:
Menu(void);
~Menu(void);
//fonctions membres
void Display(int idMnu);
void Display(void);
void AddSubMnu(int idMnu,string vName);
void AddMnu(string vName);
//Variables
string Name[10];
int NbMnu;
SubMenu SubMnu[10];
};
Une classe SubMenu
class SubMenu
{
public:
//Constructeur et destructeur
SubMenu(void);
~SubMenu(void);
//Fonctions Membres
void Display(void);
void AddMenu(string vName);
//Variables membres
string Name[10]; //Nom du menu
int NbMnu;
};
avec :
void SubMenu::AddMenu(string vName)
{
Name[NbMnu] = vName;
NbMnu +=1;
if(NbMnu>9)
NbMnu=9;
}
et :
void Menu::AddSubMnu(int idMnu, string vName)
{
Mnu[idMnu].AddMenu(vName);
}
si je fais :
int main(void)
{
Menu Mnu;
SubMenu m;
m.AddMenu("Chaine"); Ok Ca marche
Mnu.AddSubMnu(2,"Chaine"); Ca ne marche pas -> Une exeption est crée
return 0;
}
En gros lorsque j'appelle la fonction AddMenu de la classe SubMenu directement ca marche mais si je fais un appelle a cette même fonction par l'intermédiaire de la classe Menu ca marche plus ??????
J'ai remplacer les string par des int pour voir ce que cela donnait, et la ca marche. Quelqu'un pourais t il m'aider ??
Merci
Damien
*
Les fautes d'orthographes jointes à la présente missive, sont la propriété exclusive de l'auteur. Toute copie illégale pourra être passive de poursuites judiciaires, et soumises à des peines et sanctions exemplaires