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 :

A propos des classes abstraites


Sujet :

C++

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3
    Par défaut A propos des classes abstraites
    Bonjour à tous,

    Les données de mon dilemme sont les suivantes :
    Deux classes A et B dérivants d'une classe abstraite base. Dans cette dernière get_int() est virtuelle pure. Elle est redéfinie dans A et B.
    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
     
    // Classe de base abstraite
    class base {
    ...
    virtual int get_int() const = 0;
    ....
    };
    // Première classe dérivée de base
    class A : public base{
    ....
    int get_int() const
    {.....}
    ...
    };
     
    // Seconde classe dérivée de base
    class B: public base{
    ....
    int get_int() const
    {.....}
    ...
    };
    Une quatrième classe use contenant la méthode method qui a un argument de type ref A :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    class use {
     
    public:
    ...
    int method(const A & ref_A){
    ...
    const int my_int = ref_A.get_int();
    ....
    }
    };
    Le main ressemble à ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    int main(int argc,char * argv[]){
     
    // Un objet de type A
    A objet_A;
     
    // Un objet de type use
    use objet_use;
     
    // A ce niveau je reçoi une erreur de segmentation
    objet_use.method(objet_A);
    ...
     
    }
    Je n'arrive pas à expliquer le fait que je reçoive une erreur de segmentation. Sachant que, je ne reçoi pas une telle erreur si je ne déclare pas get_int() comme virtuelle pure dans la classe de base base.

    Quelqu'un voit t-il pourquoi ?

    Merci d'avance.

    Compilateur : g++ 3.3.5 (debian 1:3.3.5-13)

    N.B.: Si vous pensez que les données ne sont pas suffisantes ou pas claires, merci de me le signaler, je donnerai plus de détails.
    [pense à mettre la balise de code, Merci Farscape]
    Fichiers attachés Fichiers attachés

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

Discussions similaires

  1. A propos des classes abstraites
    Par zied_m dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 04/01/2012, 23h20
  2. boost.python : générer les conversions to_python pour des classes abstraites
    Par Blustuff dans le forum Interfaçage autre langage
    Réponses: 2
    Dernier message: 02/08/2011, 11h08
  3. L'intérêt des classes abstraites face au interfaces
    Par diopahmadou dans le forum Langage
    Réponses: 2
    Dernier message: 07/12/2009, 10h43
  4. [classe abstraite] gestion des classes abstraites en memoire
    Par noOneIsInnocent dans le forum Langage
    Réponses: 2
    Dernier message: 10/12/2007, 11h53
  5. À propos des classes partielles
    Par zarbiman dans le forum Général Dotnet
    Réponses: 3
    Dernier message: 01/03/2007, 11h21

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