Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Fonctions Imbriquées avec argument string [ Divers / Débutant(e) ] (Zakata)

jeudi 11 octobre 2007 à 15:08:43 | Fonctions Imbriquées avec argument string

Zakata


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

jeudi 11 octobre 2007 à 17:28:50 | Re : Fonctions Imbriquées avec argument string

luhtor

void Menu::AddSubMnu(int idMnu, string vName)
{
    Mnu[idMnu].AddMenu(vName);
}


Le membre Mnu n'existe pas dans la classe Menu, c'est quoi ?

Je me permets une remarque, un sous-menu EST aussi un menu. Donc distinguer "Menu" et "Sous-Menu" ne me parait pas adapté. La classe SubMenu ne devrait pas exister.

jeudi 11 octobre 2007 à 17:55:58 | Re : Fonctions Imbriquées avec argument string

Zakata


J'ai mal geré le copier coller, la vrai fonction est :

void Menu::AddSubMnu(int idMnu, string vName)
{
    SubMnu[idMnu].AddMenu(vName);
}

Concernant ta remarque, au debut je voulais gerer les menus avec un tableau de char à deux dimension : char Menu[10][10]. Le premier indice permet de gerer les 10 menus de plus haut niveau et le deuxieme indice permet de gerer les sous menu. A cela il falait ajouter une alloc dynamique pour le tableau de la chaine de caractère. Je débarque dans le C++ alors je te raconte pas la galère que c'était pour moi de gérer cette organisation. De plus elle ne me permetait pas de gérer le nom des menus principaux. J'ai donc rajouté la classse SubMenu puis je suis passé sur les string, ce qui me permétait de ne pas fair d'allocation.

sinon je suis maintenant passé sur une autre structure, j'ai une classe Menu avec comme membre, le nom, l'indice du parent et le niveau. J'ai une deuxième classe lstMenu qui contient un tableau de Menu. Je pense que c'est plus propre.

Le probléme qui a fait l'objet de ce topic n'est donc plus d'atualité cependant j'aimerais bien savoir pourquoi ca bugais, histoire de pouvoir réagir si je tombe à nouveau dessus.

Voila merci de ton aide
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.



Cette discussion est classé dans : menu, int, string, void, vname


Répondre à ce message

Sujets en rapport avec ce message

Templace c++ ==> URGENT svp [ par najla1986 ] bonjour, j'ai un dossier a rendre pour mes cours et j'ai un soucis concernant l'utilisation de mes template. c'est donc a l'appel des methode du templ pb prog C: recuperation clavier [ par btita ] bonjour, voila, je vous expose mon prob. je developpe (depuis peu) avec Dev C++ sous Windows XP. je dois faire un projet qui permet de gerer le mat Erreur conversion from `Sportif*' to non-scalar type `Sportif' requested [ par lordskyser1 ] Bonjour,je débute en C++ et je tente de compiler ma première classe sans y arriver, car je n'arrive pas à comprendre le message d'erreur de dev c++.he Probleme ASCII et coonversion string vers char (enfin je pense) [ par Leptis ] Salut a tous les pgm qu'il y a sur ce site. Avant tout je tien à vous prévenir que je suis en gros newbie en C.Voila mon problème : je cherche à faire quelqun peut il corriger ce qui ne vas pas dans ce programme s'il vous plait [ par gasy72 ] en fait je commence à programmer en C++ maintenant et j'apprend en modifiant et en essayant de comprendre certain programme.voici par exemple un code tpe de curseurs sous linux [ par le_papy ] bonjour a tous, voila j'ai un projet d'info à faire, et j'aurais besion d'un equivalent linux (gcc) de la biblio SCONIO.H. Ou bien,plus particulierem Urgent SVPPPPP [ par jitalia ] Voilà, pour demain j'ai un devoir en c++ à faire il s'agit d'additionner, multiplier, et soustraire 2 matrice de 4 lignes et 4 colonnes.... Voici ce Gestoin de souris en C++ [ par Wickedwolf ] Bonjour,je débute en C++ en suivant un cours d'infographie proposée dans mon cursus universitaire. Le projet de cette année consite en la création d'u link error sous vc++ [ par gdpasmini ] Salut ! J'ai un petit probleme de compilation en C++. Je travail avec visual c++ express edition et lorsque je compile, le message d'erreur suivant a PB POUR LA GESTION MULTIFENETRES [ par algeros ] Voici un code ://////////////////////////////////////////////////////////////////                                                          //   Name:


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,858 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.