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 :

Fonction virtual en c++


Sujet :

C++

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Fonction virtual en c++
    Bonjour j'aimerais savoir comment fonctionne exactement les classes virtual en c++? Je sais que d'une classe parents a une classe enfants, le type de la fonction, le nom de la fonction, et les parametre sons pareille, mais pour le reste je suis un peu meler... et si possible me donner une exemple concret de code.. je suis visuel lolll

    merci

  2. #2
    Membre averti Avatar de Jack_serious
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    350
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 350
    Points : 396
    Points
    396
    Par défaut

    http://c.developpez.com/faq/cpp/?pag...NITION_virtual

    Je crois que le principal est dedans.

    virtual permet aussi de resoudre certains problemes lies a l'heritage multiple.
    Quand une classe herite de deux classe qui ont une methode en commun, si ces deux classes sont declarees 'virtual', ca passe a la compilation. Sinon non.

  3. #3
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 282
    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 282
    Points : 11 036
    Points
    11 036
    Par défaut
    Il n'y a pas de classe virtuelle en C++. Toute personne qui te dira le contraire te mentira ou ne connaitra pas le C++.

    Tu as :
    - des "classes de base virtuelles" relativement à un héritage, faisant généralement partie intégrante d'un héritage multiple
    - des classes qui ont au moins une fonction membre virtuelle pure => classes abstraites
    - des classes dont toutes les fonctions membre sont virtuelles pures publiques => classe abstraite qui se rapproche des interfaces de COM/CORBA/Java
    - des classes dont les fonctions membre publiques ne sont pas virtuelles, mais vérifient des contrats et appellent des fonctions membre virtuelles privées pures => classe abstraite qui implémente ce que j'ai envie d'appeler maladroitement idiome des contrats -- interfaces encore plus précises et plus puissantes.

    virtual permet aussi de resoudre certains problemes lies a l'heritage multiple.
    Quand une classe herite de deux classe qui ont une methode en commun, si ces deux classes sont declarees 'virtual', ca passe a la compilation. Sinon non.
    Cela ne sert à pas à ça.

Discussions similaires

  1. Réponses: 10
    Dernier message: 26/11/2012, 10h45
  2. Virtual Host qui ne fonctione qu'a moitié
    Par Radjiv dans le forum Apache
    Réponses: 1
    Dernier message: 11/10/2012, 01h32
  3. Erreur dans la surcharge de fonction pure virtual
    Par Razgriz dans le forum Débuter
    Réponses: 2
    Dernier message: 01/10/2009, 17h56
  4. Fonction virtual abstract et overload ?
    Par Targan dans le forum Débuter
    Réponses: 7
    Dernier message: 08/02/2008, 17h10
  5. Revision sur Virtual fonction et heritage
    Par SpongeBob dans le forum C++
    Réponses: 4
    Dernier message: 23/03/2007, 15h39

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