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 :

petites questions toutes simple pour débutant C++


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Analyse système
    Inscrit en
    Juin 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2018
    Messages : 3
    Par défaut petites questions toutes simple pour débutant C++
    je suis nouveau ici et j'ai besoin d'aide les gas

    des question pour test C++
    Q1: Je suis un autre nom que l'on peut donner à une donnée membre, je suis ......
    Q2: Je suis le principe selon lequel un objet est responsable de ses données et doit en contrôler l'accès, je suis .....
    Q3: Je suis une forme d'héritage qui permet à une instance d'une classe enfant de faire appel à une méthode du parent, je suis .......
    Q4: Je suis une forme d'héritage qui permet à un enfant d'avoir plusieur parents, je suis ......
    Q5: Je suis le mécanisme qui permet, à travers une méthode disponible dans la classe ancêtre, de faire appel à une méthode spécifique d'une classe enfant, je suis .....
    Q6: Je suis une classe qu'on ne peut instancier bien que mon constructeur soit public, je suis une classe......................

    Merci pour votre aide

  2. #2
    Expert confirmé
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 766
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 766
    Par défaut
    Q1: un attribut
    Q2: l'encapsulation (ou notion d'interfaces)
    Q3: le polymorphisme
    Q4: le multi-héritage l'héritage multiple
    Q5: un patron de méthode ("template method pattern") (<- lien wiki français)
    Q6: singleton ou usine

  3. #3
    Candidat au Club
    Homme Profil pro
    Analyse système
    Inscrit en
    Juin 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2018
    Messages : 3
    Par défaut
    merci, j'ai d'autres questions suivantes :

    Q1: Je suis un modèle qui décrit ce qui est commun à plusieurs instance, je suis la ...............
    Q2: Dans une situation d'héritage simple et public, il y'a un cas ou une méthode publique de la classe parent, méthode publique qui n'est pas abstraite, ne pourra etres appelée par le biais d'une instance de la classe enfant. décrivez ce cas
    Q3: À quelle condition une classe dérivée d'une classe abstraite peut-elle etres instanciée ?
    Q4: Une interface abstraite opaque qui n'a pas pour but que de dévoiler les méthodes publiques d'une classe dérivée n'a pas à comporter de constructeur, pourquoi ?

    Merci d'avance les amis(e) !

  4. #4
    Expert confirmé
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 766
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 766
    Par défaut
    Attend d'autres réponses, je peux me planter

    Q1: classe abstraite/ classe abstraite pure/ une interface
    Q2: un destructeur
    Q3: si toutes les méthodes abstraites pures ont été redéfinies
    Q4: après recherche , on me dit que l'on peut coder le pImpl avec une classe abstraite. Et donc classe abstraite, pas de pointeur, donc pas de constructeur ->


    Q4 - Source boost:
    Another widely used C++ idiom for separating inteface and implementation is to use abstract base classes and factory functions. The abstract classes are sometimes called "interfaces" and the pattern is known as "interface-based programming". Again, shared_ptr can be used as the return type of the factory functions:

    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    // X.hpp:
     
    class X {
    public:
     
        virtual void f() = 0;
        virtual void g() = 0;
     
    protected:
     
        ~X() {}
    };
     
    shared_ptr<X> createX();
     
     
    // X.cpp:
     
    class X_impl: public X {
    private:
     
        X_impl(X_impl const &);
        X_impl & operator=(X_impl const &);
     
    public:
     
        virtual void f() {
          // ...
        }
     
        virtual void g() {
          // ...
        }
    };
     
    shared_ptr<X> createX() {
        shared_ptr<X> px(new X_impl);
        return px;
    }
    A key property of shared_ptr is that the allocation, construction, deallocation, and destruction details are captured at the point of construction, inside the factory function. Note the protected and nonvirtual destructor in the example above. The client code cannot, and does not need to, delete a pointer to X; the shared_ptr<X> instance returned from createX will correctly call ~X_impl.

  5. #5
    Candidat au Club
    Homme Profil pro
    Analyse système
    Inscrit en
    Juin 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2018
    Messages : 3
    Par défaut
    THX so much .....merci beaucoup

  6. #6
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 296
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 296
    Par défaut
    Qa.3, "forme d'héritage qui permet à une instance d'une classe enfant de faire appel à une méthode du parent"
    Le polymorphisme n'est pas une forme d'héritage. Après tous les héritages permettent d'appeler des fonctions membres des parents (que l'on découpe public/protégé/privé, ou implements/inherits), tant que la fonction membre parente n'est pas privée

    Qa.4 On dit plutôt "héritage multiple" en VF

    Qa.5 De nouveau formulation très floue, je pourrai caser polymorphisme, sous-typage, DP template method, NVI...

    Qa.6 Nope. Un singleton est instaciable, une fois seulement, mais instanciable

    Qb.1 Nope. Pas "commun à plusieurs classes", mais "commun à plusieurs instance"

    Qb.2 Si, on peut appeler le destructeur explicitement (et tout faire planter)

    Qb.3 En vocabulaire C++: si elle n'est plus abstraite. Et par définition une classe est abstraite si elle dispose de fonctions membre virtuelles pures -- qu'elles soient héritées et non supplantées, ou juste nouvellement virtuelles pures.

    Qb.4 Il y a toujours une constructeur. Mais il n'est pas obligatoire qu'il soit public (typiquement pour les classes abstraites qu'un constructeur soit public ou protégé ne va rien changer). Pour les classes de collection de services (qui n'ont pas vocation à être détruites polymorphiquement), on peut même mettre des destructeurs protégés non virtuels.
    Après, tant qu'une classe n'a pas à positionner des invariants non triviaux, il n'est pas nécessaire de lui définir explicitement un constructeur. On peut se contenter des constructeurs générés par défaut qui vont laisser les membres POD dans un état quantique non déterminé, et les autres membres construits avec leur constructeur par défaut.
    Je ne vois pas trop ce que vient rajouter le contexte spécifié dans la question -- hormis impliquer qu'une interface bateau n'a pas de données, donc pas d'invariant positionnable à la construction, et de fait pas besoin d'expliciter un constructeur. Sauf qu'une interface va avoir un destructeur (public et virtuel), sa copie interdite (si, si, c'est nécessaire!), et donc des constructeurs deleted.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  7. #7
    Membre éclairé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Août 2016
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Canada

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Août 2016
    Messages : 32
    Par défaut
    Citation Envoyé par DJ reda Voir le message
    je suis nouveau ici et j'ai besoin d'aide les gas

    des question pour test C++
    Q1: Je suis un autre nom que l'on peut donner à une donnée membre, je suis ......
    Q2: Je suis le principe selon lequel un objet est responsable de ses données et doit en contrôler l'accès, je suis .....
    Q3: Je suis une forme d'héritage qui permet à une instance d'une classe enfant de faire appel à une méthode du parent, je suis .......
    Q4: Je suis une forme d'héritage qui permet à un enfant d'avoir plusieur parents, je suis ......
    Q5: Je suis le mécanisme qui permet, à travers une méthode disponible dans la classe ancêtre, de faire appel à une méthode spécifique d'une classe enfant, je suis .....
    Q6: Je suis une classe qu'on ne peut instancier bien que mon constructeur soit public, je suis une classe......................

    Merci pour votre aide
    Ce sont pas des questions pour rentrer à l'UDES à tout hasard ? ^^

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 11
    Dernier message: 10/10/2017, 08h22
  2. REST - question simple pour débutant
    Par Koiky dans le forum Services Web
    Réponses: 4
    Dernier message: 06/03/2014, 10h08
  3. petite question toute simple sur les boucles
    Par elmcherqui dans le forum C++
    Réponses: 7
    Dernier message: 21/05/2008, 10h15
  4. petite question de compilation pour débutant
    Par flamant dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 21/09/2007, 15h19
  5. Petit truc tout simple que je comprend pas
    Par Olaf MENJI dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 29/11/2005, 16h56

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