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 :

Liste et classe abstraite


Sujet :

C++

  1. #21
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Citation Envoyé par JolyLoic Voir le message
    Sauf que push_back est aussi anglais que pousse_queue est français, et là la différence est plus mineure... Même si elle te saute aux yeux par l'habitude que tu as de la langue française.

    Maintenant, je suis d'accord que insertAlaFin n'est pas terrible, mais insèreÀLaFin est déjà plus correct, ou ajouteEnQueue.
    Nous sommes bien d'accord

    Ce qui est dommage dans l'optique du "aucun nom en anglais", c'est surtout que cela n'habitue pas l'élève à ce qu'il rencontrera tout au long de sa carrière professionnelle, car, une fois dans la vie active, ce seront essentiellement des noms anglais
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  2. #22
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Par défaut
    J'ai déjà discuté avec quelqu'un qui avait été appelé à déboguer du code écrit en coréen, langue qu'il ne maîtrisait bien entendu pas, et dont la graphie n'est pas des plus habituelles.

    On va dire que ce fut une expérience... intéressante
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  3. #23
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Citation Envoyé par JolyLoic Voir le message
    J'ai déjà discuté avec quelqu'un qui avait été appelé à déboguer du code écrit en coréen, langue qu'il ne maîtrisait bien entendu pas, et dont la graphie n'est pas des plus habituelles.

    On va dire que ce fut une expérience... intéressante
    Ca, je veux bien croire
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  4. #24
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2011
    Messages : 79
    Par défaut
    Citation Envoyé par koala01 Voir le message
    l

    std::unique_ptr par exemple représente un pointeur qui n'est pas partagé entre différentes classes.

    Lorsque l'objet auquel il appartient est détruit, ou que l'on atteint la fin de la portée dans laquelle il est déclaré, la mémoire allouée au pointeur est correctement libérée de manière automatique:
    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
    29
    30
     
    class MachinTruc
    {
        public:
            MachinTruc():ptr(new Bidule){}
        /* ...*/
        private:
        std::unique_ptr<Bidule> ptr;
    }
    int main()
    {
        MachinTruc obj;
        std::unique_ptr<UnType> one(new UnType);
        if(test)
        {
            std::unique_ptr<AutreType> two(new AutreType);
            /* ce qui suit n'est peut etre pas très efficace du point de vue des 
             * performances, mais
             */
           for(int i=0;i<10:++i)
           {
                 std::unique_ptr<AutreType> three(new AutreType);
                 /* ... */
           } // libération de la mémoire allouée à three ici
            /* ... */
        }// libération de la mémoire allouée à two ici
         /* ... */
         return 0;
    } // libération de la mémoire allouée à one ici
       // obj est détruit : libération de la mémoire allouée à objet.ptr ici
    Je comprend que la mémoire alloué sera automatique libéré mais si je veux le faire moi même.

    Voici mon programme comment sa marche :

    Menu Principale
    Consulter ProblèmePatient
    On Remplie La Liste Avec Probleme patient
    On revient Menu principale
    On vide la Liste
    Et on recommence avec un autre patient

    mes listes sont en variable globale en raison de la manière que l'interface à été fait par mon professeur.

    Citation Envoyé par koala01 Voir le message
    Nous sommes bien d'accord

    Ce qui est dommage dans l'optique du "aucun nom en anglais", c'est surtout que cela n'habitue pas l'élève à ce qu'il rencontrera tout au long de sa carrière professionnelle, car, une fois dans la vie active, ce seront essentiellement des noms anglais
    Je n'ai aucun problème avec l'anglais où le français donc cela ne dérenge pas trop. Si le code est en allemand ou en chinois à ben là je vais rien comprendre ^^

  5. #25
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Citation Envoyé par lolaalol Voir le message
    Je comprend que la mémoire alloué sera automatique libéré mais si je veux le faire moi même.

    Voici mon programme comment sa marche :

    Menu Principale
    Consulter ProblèmePatient
    On Remplie La Liste Avec Probleme patient
    On revient Menu principale
    On vide la Liste
    Et on recommence avec un autre patient
    Ce n'est pas un problème, tu peux très bien mettre une liste de unique_ptr<Probleme> dans ta classe Patient, et, lorsque le patient sera détruit, la liste de ses problème le sera de manière tout à fait correcte

    mes listes sont en variable globale en raison de la manière que l'interface à été fait par mon professeur.
    Ca, par contre, c'est pas bien du tout

    Les variables globales, c'est le mal

    Mais, encore une fois, au moment où tu fais un clear de ta liste de unique_ptr, tu es sur que la mémoire de tous les objets utilisés par cette liste sera correctement libérée
    Je n'ai aucun problème avec l'anglais où le français donc cela ne dérenge pas trop. Si le code est en allemand ou en chinois à ben là je vais rien comprendre ^^
    je crois qu'on est à peu près tous dans ce cas

    Ce que je voulais surtout dire par là, c'est que la très grosse majorité des interfaces auxquelles tu sera confronté sera sans doute dans la langue de shakespeare...

    je trouve vraiment dommage de ne pas habituer les étudiant à un état de fait, et ce d'autant plus que ce n'est pas un cours de dissertation ou de diction, mais bien un cours d'informatique (même si j'aime trouver des textes bien orthographiés quand meme )
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  6. #26
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    En fait, ce que je verrais bien comme solution tient à peu près à ceci:
    Dans la fonction main(), tu aurais une liste qui reprend les noms des patients et les informations utiles pour arriver à les récupérer (par exemple, leur identifiant dans une base de données ou ce qui permettra de définir quel fichier lire pour accéder aux données du patient)

    Lorsque le toubib reçoit un patient, il commence par en charger son historique, c'est à dire que, sur base de la liste de patients dont il dispose, il va y avoir une requête qui va avoir pour résultat de créer un objet de type Patient.

    Ce type patient sera, entre autres, composé d'une liste de "problèmes" (en fait, d'une liste de pointeur intelligents sur des problèmes )

    Le toubib doit, cela semble logique, pouvoir rajouter un problème au patient qu'il est occupé à ausculter, et la destruction du patient aura, forcément, comme résultat de "sauvegarder" (quelle qu'en soit la manière) les problèmes que le toubib aura rajouté

    Bien sur, il faut aussi prévoir le fait que le patient "en cours" soit un nouveau patient, et donc permettre la création d'une nouvelle fiche

    Mais, a priori, il n'y a strictement pas lieu d'avoir de variables globales
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

Discussions similaires

  1. Réponses: 2
    Dernier message: 29/10/2014, 18h10
  2. Réponses: 2
    Dernier message: 30/12/2009, 21h44
  3. [Debutant][Conception] Classes abstraites et interface.
    Par SirDarken dans le forum Langage
    Réponses: 4
    Dernier message: 29/10/2004, 01h02
  4. Classe abstraite / MVC
    Par caramel dans le forum MVC
    Réponses: 5
    Dernier message: 01/04/2003, 10h27
  5. pb constructeurs classes dérivant classe abstraite
    Par Cornell dans le forum Langage
    Réponses: 2
    Dernier message: 10/02/2003, 20h02

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