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 :

Manipulation d'objet / de pointeurs


Sujet :

C++

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 35
    Par défaut Manipulation d'objet / de pointeurs
    Bonjour,

    J'éprouve un problème avec la manipulation d'objets. Je pensais avoir plutôt bien compris les concepts des objets, et des pointeurs en C++, mais il y a manifestement quelque chose qui m'échappe. Le problème n'est pas à la compilation, mais à l'exécution (segmentation fault).

    D'abord, je situe le contexte. Il s'agit d'un programme où je manipule des formes géométriques. J'ai créé une classe coord, qui contient une coordonnée, et une classe rectangle, qui contient les 4 coordonnées des coins, et celle du "centre".

    Une méthode getCenter() calcule le centre sur base d'une moyenne des coordonnées des côtés. Elle renvoie un pointeur vers une coordonnées. C'est dans cette méthode qu'il y a un problème.

    Un peu de code valant mieux qu'un long discours, le voici. Je ne mets pas les #include ni les fichiers d'en-tête car je suis à 99,9% certain qu'ils sont bons...

    La classe coord:
    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
    /* Constructeur: initialisation à 0 par défaut */
    coord::coord(){
        int x = 0;
        int y = 0;}
     
    coord::coord(int i, int j){
        x = i;
        y = j;}
     
    int coord::X(){
        return x;}
     
    int coord::Y(){
        return y;}
     
    void coord::setX(int n){
        x = n;}
     
    void coord::setY(int n){
        y = n;
    }
    La classe rectangle:
    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
    23
    24
    rectangle::rectangle(){
        coord* c = new coord();
        coord* coin1 = new coord();
        coord* coin2 = new coord();
        coord* coin3 = new coord();
        coord* coin4 = new coord();
    }
     
    coord* rectangle::getCenter(){
        int xCenter = coin1->X() + coin2->X() + coin3->X() + coin4->X();
        int yCenter = coin1->Y() + coin2->Y() + coin3->Y() + coin4->Y();
        cout<<endl<<"Ici ca va"<<endl;
        c->setX(5);
        cout<<endl<<"Ici ca va plus... "<<endl;
        c->setY(yCenter);
        return c;
    }
     
    void rectangle::setCoord(coord* c1, coord* c2, coord* c3, coord* c4){
            coin1 = c1;
            coin2 = c2;
            coin3 = c3;
            coin4 = c4;
    }
    Le fichier main.cpp:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    int main(){
     
        coord* c1 = new coord(1, 1);
        coord* c2 = new coord(1, 4);
        coord* c3 = new coord(5, 1);
        coord* c4 = new coord(5, 4);
     
        rectangle* rect = new rectangle();
        rect->setCoord(c1, c2, c3, c4);
        coord* centre = rect->getCenter();
     
    }
    Comme vous le voyez, je crée 4 pointeurs vers des coordonnées. Ensuite, je crée un rectangle, et je lui assigne les coins.
    Puis je veux récupérer son centre.

    Le problème se situe à la ligne "c->setX(5);" (j'imprime des petits commentaires de débuggage. Vous verrez que c'est entre les 2 que ça plante).

    D'avance, merci beaucoup pour votre aide!

    PS: Je rajoute en attach un ZIP du code source, avec les en-têtes, (et qui compile...)
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Réponses: 13
    Dernier message: 09/05/2006, 16h30
  2. conserver ma liste d'objets sans Pointeur Null ...
    Par comme de bien entendu dans le forum Général Java
    Réponses: 8
    Dernier message: 24/03/2006, 11h55
  3. Manipulation d'objet MS-Access (Copie de table, états, form)
    Par Mustard007 dans le forum Bases de données
    Réponses: 1
    Dernier message: 14/02/2006, 21h37
  4. Construction objets et pointeurs
    Par Jahjouh dans le forum C++
    Réponses: 2
    Dernier message: 12/01/2006, 10h10
  5. Réponses: 2
    Dernier message: 03/12/2004, 21h37

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