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 :

virtual et héritage, ld undefined symbol


Sujet :

C++

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 46
    Points : 27
    Points
    27
    Par défaut virtual et héritage, ld undefined symbol
    Je voulais savoir:

    quand je défini une fonction virtual dans une classe A et que dans une classe fille (B) je ne la définie pas virtual que se passe t il d'une classe fille (C) de B?

    Et pour vérification je dois utiliser des destructeur virtuel quand je peux appeler un objet de type B par un pointeur de type A lors de sa destruction? Dois je détruire tous les membres de A et B ou le destructeur de B appellera ensuite le destructeur A?

    Enfin question "bonux", j'ai régulièrement des "ld undefined symbols",bon le dernier était à cause d'une déclaration sans définition, mais est ce le seul cas? Car je crois que bien souvent je ne trouve pas la raison.

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    quand je défini une fonction virtual dans une classe A et que dans une classe fille (B) je ne la définie pas virtual que se passe t il d'une classe fille (C) de B?
    Une fonction qui est virtuelle le reste dans toutes les classes dérivées, que tu le spécifies ou non. En gros il n'y a aucun moyen de "stopper" la virtualité d'une fonction.

    Et pour vérification je dois utiliser des destructeur virtuel quand je peux appeler un objet de type B par un pointeur de type A lors de sa destruction?
    Oui.

    Dois je détruire tous les membres de A et B ou le destructeur de B appellera ensuite le destructeur A?
    Le destructeur de B appelera celui de A.

    Enfin question "bonux", j'ai régulièrement des "ld undefined symbols",bon le dernier était à cause d'une déclaration sans définition, mais est ce le seul cas?
    Cette erreur survient lorsque l'éditeur de liens ne trouve pas la définition d'une fonction, que ce soit dans ton code, dans une biblothèque, ou autre.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 46
    Points : 27
    Points
    27
    Par défaut
    Et bien merci pour ces excellentes réponses pour le moins rapides

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

Discussions similaires

  1. undefined symbol "enum"
    Par djallal dans le forum C
    Réponses: 2
    Dernier message: 02/03/2007, 22h29
  2. [E2451] Undefined symbol 'att_nombre'
    Par kaizer dans le forum C++
    Réponses: 9
    Dernier message: 22/10/2006, 13h53
  3. [POO] virtual et héritage
    Par poukill dans le forum C++
    Réponses: 4
    Dernier message: 27/07/2006, 15h27
  4. probleme a la compilation:Undefined symbols
    Par djobanaille dans le forum C++
    Réponses: 3
    Dernier message: 07/12/2005, 15h33
  5. Undefined symbol
    Par tchoimars dans le forum C
    Réponses: 2
    Dernier message: 02/12/2005, 17h28

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