IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C++ Discussion :

structure dans une class ?


Sujet :

C++

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2006
    Messages : 412
    Points : 149
    Points
    149
    Par défaut structure dans une class ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    //comment ne pas faire de copie/instance quand on récupère une structure qui ce trouve dans une class ?
    //fichier *.h
     
    #ifndef DEF_ME_PARAM
    #define DEF_ME_PARAM
     
    class c_parammetre {
     
    	public:
    		c_parammetre();
    		struct cmd
    		{ 
    			int test;
    		};
    		void m_set_list();
    }
    #endif //fin des macro
     
    fichier *.cpp
    c_parammetre::c_parammetre(){}
     
    void c_parammetre::m_list()
    {
     
    	cmd* e=new cmd; //est-ce possible avec une référence ou un pointeur ?
    	e->test=66;// car ici des qu'on sort de la methode le contenu est perdu
    }
    Merci d'avance

  2. #2
    Rédacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supaéro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ing Supaéro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Points : 4 732
    Points
    4 732
    Par défaut
    Le mieux reste quand même de tester par toi même, mais oui on peut.
    Une remarque néanmoins. Ici, tu vas avoir une fuite de mémoire. En effet, tu alloues dynamiquement un objet (en gros tu dis au compilateur "JE gère la durée vie de cette variable") mais tu ne libères pas la mémoire.

    Solution 0 : utiliser delete à la fin de ta fonction pour détruire ton objet
    Solution 0.5: utiliser des pointeurs intelligents.
    Solution 1: ne pas utiliser l'allocation dynamique
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une très bonne doc sur le C++ (en) Why linux is better (fr)

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2006
    Messages : 412
    Points : 149
    Points
    149
    Par défaut
    Citation Envoyé par Davidbrcz Voir le message
    Le mieux reste quand même de tester par toi même, mais oui on peut.
    Une remarque néanmoins. Ici, tu vas avoir une fuite de mémoire. En effet, tu alloues dynamiquement un objet (en gros tu dis au compilateur "JE gère la durée vie de cette variable") mais tu ne libères pas la mémoire.

    Solution 0 : utiliser delete à la fin de ta fonction pour détruire ton objet
    Solution 0.5: utiliser des pointeurs intelligents.
    Solution 1: ne pas utiliser l'allocation dynamique
    erf j'ai bien essayer de faire autrement mai je ne trouve pas la syntaxe appropriée du coup sa coince, je fait une structure dans le but de limiter l'usage des paramètres des fonction.

    effectivement delete manque c'est noter
    pour les pointeur intelligent je trouve que c est pas approprier car j'ai lu la faq associer a mon livre, il en result que a ce sujet et sa nuit a la stabilité du soft (et vu que je débute hum..)

    Donc a il me faut passer par new et delete et pas moyen de faire autrement

    [édit]

    Je ne comprend pas comment on modifie une variable structure dans une class ?


    Merci pour ta réponse

  4. #4
    Rédacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supaéro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ing Supaéro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Points : 4 732
    Points
    4 732
    Par défaut
    Citation Envoyé par panthere noire Voir le message
    erf j'ai bien essayer de faire autrement mai je ne trouve pas la syntaxe appropriée du coup sa coince, je fait une structure dans le but de limiter l'usage des paramètres des fonction.
    Je ne suis pas sûr de comprendre mais tu veux faire ca ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    //Le reste est comme avant
    void c_parammetre::m_list()
    {
        
        cmd e; 
        e.test=66;
    }
    pour les pointeur intelligent je trouve que c est pas approprier car j'ai lu la faq associer a mon livre, il en result que a ce sujet et sa nuit a la stabilité du soft (et vu que je débute hum..)
    Oo

    c'est quoi ton livre ? Les pointeurs intelligents mauvais pour la stabilité du programme ? C'est la première fois que j'entends ca. Si c'est vraiment ce qui est dit (et pas une erreur de compréhension) alors ton livre est bon à jeter.

    Donc a il me faut passer par new et delete et pas moyen de faire autrement
    Non, cf avant.


    Je ne comprend pas comment on modifie une variable structure dans une class ?
    Euh, pas compris. N'hésite pas à exprimer ta pensé avec du code exprimant ce que tu veux faire plutôt qu'avec des mots compliqués.
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une très bonne doc sur le C++ (en) Why linux is better (fr)

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2006
    Messages : 412
    Points : 149
    Points
    149
    Par défaut
    pour les pointeur http://cpp.developpez.com/faq/cpp/?p...S_intelligents

    mai c est pas la question a la base .

    je veux faire la même chose qu'une struct qu'on pourrait accéder dans toute les classe.

    le probleme est que une struct est publique et globale, Et je veux faire comme une class, lui donne une methode (ou directeurment par le nom de la structure) ce qui la rend privée et global via la class

    en gros:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    class A
    {
    public:
            struct B
            {
               int C
            }
    };
    Le problème a la base:
    le but et de stoquer les paramètre qui son entré sur la ligne de commande.

    je constate que:
    Cela doit donc être accessible partout.
    J'ai fait un classe qui identifie les paramètre en leur affectant si il ne son pas présent des valeur par défaut donc il faut que cette classe stoque ces valeur et les restitue les valeur a tout moment
    seulement les classe ne semble pas garder des valeur sauf si elle son static ,mai si je met static je peux plus affecter les valeur donnée en ligne commande

    désoler si je m'exprime mal m'enfin c'est pas simple :s
    Merci de prendre le temp de me lire

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2006
    Messages : 412
    Points : 149
    Points
    149
    Par défaut
    bon je vai abandonner ce post car pas claire, je vai en refaire un qui j'espère sera plus explicite

Discussions similaires

  1. Réponses: 9
    Dernier message: 12/04/2012, 14h02
  2. Declarer une structure dans une classe
    Par sub-0 dans le forum Débuter
    Réponses: 5
    Dernier message: 01/11/2009, 17h03
  3. erreur de compilation : probleme avec type de structure dans une classe
    Par medkarim dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 21/10/2008, 15h33
  4. Réponses: 1
    Dernier message: 29/06/2007, 15h13
  5. declaration d'une structure dans la class TForm1
    Par mdtdamien dans le forum C++Builder
    Réponses: 1
    Dernier message: 15/02/2006, 18h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo