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

Visual C++ Discussion :

Polymorphisme Dynamique et Polymorphisme statique


Sujet :

Visual C++

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 47
    Points : 50
    Points
    50
    Par défaut Polymorphisme Dynamique et Polymorphisme statique
    Bonjour à tous,

    En effet je sais c'est quoi la différence entre l'allocation de mémoire dynamique et statique mais ils m'ont posé une question que je n'ai pas compris:
    parmi les mots suivants le quelle indique qu'on est dans polymorphisme dynamique et pareil pour polymorphisme statique ?
    VIRTUAL OVERRIDED PATTERN STATIC ABSTRACT OVERLOADED ?

    Mais puisque je ne sais pas c'est quoi la différence entre un polymorphisme dynamique et statique je n'ai pas pu répondre !

    Une explication de la différence avec un petit exemple ça sera l'ideal

    Merci d'avance

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Il me semble que c'est la différence entre la simple surcharge de fonction (polymorphisme statique) et l'usage de fonctions membres virtuelles dans une hiérarchie de classes (polymorphisme dynamique).
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Inactif  

    Homme Profil pro
    Ingénieur test de performance
    Inscrit en
    Décembre 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur test de performance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 986
    Points : 2 605
    Points
    2 605
    Par défaut
    Bonjour ABAM3194.

    J'avais jamais entendu parlé ni de polymorphisme dynamique ni de polymorphisme statique.

    Ca doit être pour les développeurs C++ qui font un doctorat Bac+15...

    De ce que j'ai lu vite fait sur internet et de ce que je comprends. Tout ce qui est dynamique sera évalué à l'exécution et tout ce qui est statique sera évalué à la compilation.

    Le problème avec :

    VIRTUAL OVERRIDED PATTERN STATIC ABSTRACT OVERLOADED
    C'est que ce ne sont pas des mots du langage C++ (à cause du upper case). Donc j'aurais répondu aucun (ne surtout pas suivre ma conclusion...).

    A Médinoc :

    Si on part du principe ci-dessus et que l'on instancie "distinctement" une classe qui override les fonctions virtuelles de la classe mère. On est plus dans du dynamique, parce que cela peut-être résolu à la compilation. Je dis ça, j'ai jamais écris de compilo C++...

  4. #4
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 47
    Points : 50
    Points
    50
    Par défaut
    En premier je vous remercie pour vos réponses.
    @moldavi: c'est moi qui les a écris en majuscule donc je confirme que votre conclusion est fausse
    @Médinoc: donc d'après vous je peux répondre par le mot "virtual" dans le cas de polymorphisme dynamique c'est ça?
    Sinon pour le cas statique d'après vous je réponds par quoi?

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 47
    Points : 50
    Points
    50
    Par défaut
    Voici une autre question que j'ai trouvé dans un QCM sur le langage C++:

    Qu'est-ce qui est nécessaire pour le polymorphisme dynamique ?

    1 Des méthodes surchargées
    2 Des méthodes constantes
    3 Des méthodes abstraites
    3 Des méthodes virtuelles

  6. #6
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    La dernière.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  7. #7
    Inactif  

    Homme Profil pro
    Ingénieur test de performance
    Inscrit en
    Décembre 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur test de performance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 986
    Points : 2 605
    Points
    2 605
    Par défaut
    Bonjour.

    J'ai trouvé ce lien : http://cpp.developpez.com/faq/cpp/?p...ique_dynamique

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    class A{};
    class B:public A {};
     
    A* ptr= new B; // le type statique l'objet est A mais son type dynamique est B
    Dans cette situation, on a du polymorphisme dynamique ok.

    Mais là :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    class A{};
    class B:public A {};
     
    B* ptr= new B;
    Sachant que B override certaines fonctions virtuelles de A. On a pas forcément du polymorphisme dynamique, car le compilo peut résoudre les appels de fonction virtuelle à la compilation. Le compilo connaît B et les méthodes virtuelles de A qu'il impémente.

    Donc je serai tenter de dire que dans ce cas précis, virtual n'est pas un gage de polymorphisme dynamique.

    Pour moi la réponse est toujours aucun . Mais ça se discute...

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    865
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 865
    Points : 1 069
    Points
    1 069
    Par défaut
    Citation Envoyé par moldavi Voir le message
    C'est que ce ne sont pas des mots du langage C++ (à cause du upper case).
    Pire, en lower case, certains ne sont même pas des mots clés du C++.

    Si j'avais dû répondre brut de fonderie, j'aurais dit que le polymorphisme statique était le piège de la question et donc qu'il n'y avait aucun mot clé s'y rapportant. Le polymorphisme s'effectue toujours de manière dynamique car le type réel de l'objet n'est pas connu à la compilation...

    ... sauf dans le cas particulier des templates et en particulier de l'idiome CRTP.

    Mais bon toujours pour répondre à la question, aucun mot clé ne s'y rapporte et ça semble un peu osé pour un simple questionnaire sur le C++.

  9. #9
    Inactif  

    Homme Profil pro
    Ingénieur test de performance
    Inscrit en
    Décembre 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur test de performance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 986
    Points : 2 605
    Points
    2 605
    Par défaut
    Re.

    Citation Envoyé par aoyou Voir le message
    Pire, en lower case, certains ne sont même pas des mots clés du C++.
    C'est vrai. C'est pour cela que j'ai parlé de bac+15. Ce sont des tests, si tu réponds PATTERN, t'es grillé, je pense.

    Citation Envoyé par aoyou Voir le message
    Le polymorphisme s'effectue toujours de manière dynamique car le type réel de l'objet n'est pas connu à la compilation...
    Confère mon message ci-dessus. La discussion est ouverte. Mais je pense qu'un développeur de compilateur C++ sera plus à même de répondre.

    Citation Envoyé par aoyou Voir le message
    Mais bon toujours pour répondre à la question, aucun mot clé ne s'y rapporte et ça semble un peu osé pour un simple questionnaire sur le C++.
    C'est ce que je pense aussi. Bac+15... Là visilement on cherche l'élite, ou des chercheurs, ou juste on sélectionne (genre question subsidiaire)...

  10. #10
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 47
    Points : 50
    Points
    50
    Par défaut
    Merci à tous, c'est plus claire maintenant même si j'ai que Bac+0.5 (en c++)

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

Discussions similaires

  1. Problème de polymorphisme dynamique
    Par Jimmy91 dans le forum C++
    Réponses: 20
    Dernier message: 18/08/2014, 11h40
  2. bibliotheque dynamique ou polymorphisme
    Par delroot dans le forum C++
    Réponses: 4
    Dernier message: 19/01/2009, 18h02
  3. tableau dynamique de tableaux statiques.
    Par RaphAstronome dans le forum C++
    Réponses: 2
    Dernier message: 18/02/2007, 14h43
  4. [VB.NET] ConnectionString dynamique et DataSource "statique"
    Par apoingsfermes dans le forum Windows Forms
    Réponses: 1
    Dernier message: 22/08/2006, 14h58
  5. Recompiler une librairie dynamique (DLL) en statique
    Par shenron666 dans le forum C++
    Réponses: 9
    Dernier message: 07/04/2005, 19h28

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