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 :

[fonctions virtuelles] explication à propos d'un sujet dans la faq


Sujet :

C++

  1. #1
    Membre éclairé Avatar de homeostasie
    Homme Profil pro
    Inscrit en
    Mai 2005
    Messages
    939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 939
    Points : 862
    Points
    862
    Par défaut [fonctions virtuelles] explication à propos d'un sujet dans la faq
    Bonjour,

    Dans la faq c++,je suis entrain de lire le sujet concernant les fonctions virtuelles et j'ai bloqué sur une explication concernant le lien:
    http://c.developpez.com/faq/cpp/?pag...RALITE_virtual

    Quelqu'un pourrait il m'expliquer d'une autre manière le paragraphe suivant, avec pourquoi pas un petit exemple concret:
    Avec l'orientation objet, la réutilisation peut aussi être accomplie via l'appel de nouveau code par de l'ancien. Par exemple, un programmeur peut écrire du code qui est appelé par un framework qui a été écrit par son arrière grand-père. Il n'y a pas besoin de modifier le code écrit par l'arrière grand-père. En fait, il n'a même pas besoin d'être recompilé. Et si jamais il ne restait que le fichier objet, et que le code écrit par l'arrière grand-père ait été perdu depuis 25 ans, cet ancien fichier objet appellera le code avec les nouvelles fonctionnalités sans rien changer d'autre.
    Je pense que c'est important de comprendre cette notion car apparamment c'est cela qui permet de différencier la programmation basée sur l'objet et la programmation orientée objet...

    Bonne journée

    Nicolas

  2. #2
    Membre éclairé
    Avatar de buzzkaido
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2004
    Messages
    821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2004
    Messages : 821
    Points : 734
    Points
    734
    Par défaut
    Ca m'interresse aussi !

  3. #3
    Membre habitué Avatar de Ksempac
    Inscrit en
    Février 2007
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 165
    Points : 185
    Points
    185
    Par défaut
    Supposons que grand pere a créé une classe A avec des methodes virtuelles M, N, X

    Le code de grand pere est ceci :

    void fonction(A* objet)
    {
    objet->M();
    objet->N();
    objet->X();
    }

    Si aujourd'hui tu te rends compte que la classe A n'est plus tout a fait adaptée aux besoins, mais que tu n'as pas le code source, simplement le fichier compilé, tu peux creer une classe B dérivée de A qui implemente des versions differentes de M, N, X. Ensuite tu compiles B et tu verras que le code de grand-pere compilé 50 ans auparavant (a supposer que le C++ soit aussi vieux ) est capable d'appeler les methodes M N et X de la classe B compilée ya 2 min.

  4. #4
    Membre éclairé
    Avatar de buzzkaido
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2004
    Messages
    821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2004
    Messages : 821
    Points : 734
    Points
    734
    Par défaut
    Ok ! Cool !

    Donc j'ai interet à ecrire du code qui marche bien pour que mes petits-enfants puissent l'utiliser !

  5. #5
    Membre éclairé Avatar de homeostasie
    Homme Profil pro
    Inscrit en
    Mai 2005
    Messages
    939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 939
    Points : 862
    Points
    862
    Par défaut
    Ok, c'est clair!

    Merci.

    Bon we d'ici quelques heures.

  6. #6
    Membre expérimenté
    Avatar de Patriarch24
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2003
    Messages
    1 047
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 047
    Points : 1 640
    Points
    1 640
    Par défaut
    Il y a peu de chance qu'un code compilé (fichier objet) il y a 15 ans puisse encore être utilisé, si ce n'est avec le même compilateur. Or je ne connais pas grand monde qui utilise encore les compilateurs de cette époque, et les bibliothèques évoluent vite.

    a supposer que le C++ soit aussi vieux
    25 ans quand même. C++ trouve ses origines dans le début des années 80.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    void fonction(A* objet) {
       objet->M();
       objet->N();
       objet->X();
    }
    La pattern présenté est template method.

  7. #7
    Membre habitué Avatar de Ksempac
    Inscrit en
    Février 2007
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 165
    Points : 185
    Points
    185
    Par défaut
    Citation Envoyé par Patriarch24
    La pattern présenté est template method.
    Hihi j'apprends un truc la
    Merci

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

Discussions similaires

  1. Réponses: 28
    Dernier message: 09/12/2011, 11h00
  2. Réponses: 13
    Dernier message: 20/10/2008, 16h36
  3. Réponses: 2
    Dernier message: 07/10/2004, 17h00

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