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

SL & STL C++ Discussion :

[Problème C++] Les petits Vectors


Sujet :

SL & STL C++

  1. #1
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 13
    Par défaut [Problème C++] Les petits Vectors
    Alors voilà avec wxWidgets et C++, je dois développer un petit logiciel qui me permettra d'afficher des triangles à l'écran. Pour le moment rien de bien sorcier !

    Mais j'ai un petit souci : j'ai une classe Triangle défini par 3 points, 1 couleur et 1 épaisseur de trait.

    class Triangle
    {
    public:
    point p1;
    point p2;
    point p3;

    wxColour *colour;

    float thickness;

    };
    J'ai défini dans un autre fichier 1 vecteur de type Triangle :

    std::vector<Triangle> tab_tri;
    Or je n'arrive pas à acceder aux attributs colour, points ou thickness par le biais de mon vector. En fait un bout de code fait tout simplement buggé mon pc :

    wxColour *tmp_colour = frame->tab_tri.at(n).colour;
    int tmp_thick = (int) frame->tab_tri.at(n).thickness;

    propertiesDialogBox.spinctrl_epaisseur->SetValue(tmp_thick);

    if(tmp_colour->operator ==(wxColour(255,0,0))) propertiesDialogBox.radioBox->SetSelection(0);
    else if(tmp_colour->operator ==(wxColour(0,255,0))) propertiesDialogBox.radioBox->SetSelection(1);
    else if(tmp_colour->operator ==(wxColour(0,0,255))) propertiesDialogBox.radioBox->SetSelection(2);
    A partir du moment où je veux accéder à un attribut de l'un des triangles de mon vector, BOUM erreur. L'un de vous pourrait il m'aider pleaaaaaase :-) merci d'avance ![/quote]

  2. #2
    Membre Expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Par défaut
    Ce n'est pas une réponse au probleme mais pourquoi la classe triangle n'a pas de constructeur?

  3. #3
    Membre émérite
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Février 2004
    Messages
    644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Février 2004
    Messages : 644
    Par défaut
    parce qu'il utilise le concept de classe comme POD.

    deuxièmement, un constructeur n'est pas obligatoire, c'est recommandé.

  4. #4
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    Mais avec le pointeur colour, le constructeur par recopie est nécessaire, et à priori le couple ctor/dtor aussi pour allouer / libérer (pourquoi ne pas mettre wxColour sans pointeur ?)

  5. #5
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 13
    Par défaut
    Ben en fait, quand je met wxColour sans pointeur, lorsque j'ai un objet de type Triangle, si je veux accéder à sa couleur :

    {
    Triangle titi;
    titi.colour = new wxColour(red, green, blue);
    }
    j'ai droit à une erreur à la compilation que je n'arrive à résoudre qu'en y mettant un pointeur pour l'attribut colour !

    110 mainframe.cpp : invalid conversion from `wxColour*' to `long unsigned int'
    Donc bon si quelqu'un à une idée

    Une dernière légère précision, l'erreur qui me saute au visage lors de l'éxcution de mon programme est une erreur de segmentation en fait. Lorsque je tente d'accéder aux données de mes triangles par mon prgramme, BOUM erreur de segmentation !

  6. #6
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Tu détruis comment ton colour si tu as un pointeur vers lui ?
    L'erreur retournée est très bizarre, pas normal.

    Il est où ton vecteur de triangles dans le code qui plante ??

Discussions similaires

  1. petit problème sur les listes chaînées
    Par poche dans le forum C
    Réponses: 14
    Dernier message: 19/03/2007, 16h53
  2. Petit problème avec les pointeurs et variable
    Par mitherkiller dans le forum C
    Réponses: 5
    Dernier message: 09/03/2007, 22h05
  3. [VBA-Excel] Petit problème avec les formulaires
    Par ash_rmy dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/08/2006, 09h22
  4. [gsoap] Problème avec les std::vector
    Par LePhasme dans le forum SL & STL
    Réponses: 1
    Dernier message: 25/04/2006, 11h46
  5. Petit problème avec les accents circonflexes...
    Par Harvester dans le forum Autres Logiciels
    Réponses: 8
    Dernier message: 29/11/2005, 18h44

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