[C++] Qt TD3

Voir le sujet précédent Voir le sujet suivant Aller en bas

resolu [C++] Qt TD3

Message  XavBod le Jeu 18 Mar 2010, 18:26

Bonjour à tous,
alors voilà je vous explique mon problème avant d'exploser littéralement:

Dans le TD on nous demande de créer un objet automatique de la classe Pendu dont le constructeur reçoit comme parametres un pointeur de char constant et un entier non signé.

Etant donné que la méthode qui nous permet d'ouvrir un fichier nous renvoie un QString, il faut transtyper celle-ci en string(via la méthode toStdString() ) et ensuite la convertir en chaine à la C via la méthode c_str().

Donc grâce à ma méthode getFileName() qui me permet d'accéder à l'attribut privé de type QString, je pourrais convertir celui-ci lors de la construction de mon Pendu :

Pendu p(maFenetreConf.getFileName().toStdString().c_str() , maFentereConf.getVies() ) ;

devrait pouvoir me permettre de construire ce Pendu p




Or Eclipse me renvoie une erreur de conflit de type :
undefined reference to `Pendu::Pendu(char const*, unsigned int)


D'apres la doc c_str() retourne un const char * et non pas un char const *........

Si vous avez des indices, je suis preneur

Razz


Dernière édition par XavBod le Ven 19 Mar 2010, 12:27, édité 1 fois (Raison : Resolu par des élèves de ma classe)

XavBod

Nombre de messages : 196
Age : 26
Prénom : Xavier
Statut : Etudiant 3eme indu
Localisation : Woluwe
Date d'inscription : 27/09/2008

Revenir en haut Aller en bas

resolu Re: [C++] Qt TD3

Message  nvs le Jeu 18 Mar 2010, 19:38

XavBod a écrit:Dans le TD on nous demande de créer un objet automatique de la classe Pendu dont le constructeur reçoit comme parametres un pointeur de char constant et un entier non signé.
on n'a pas dû lire le même énoncé. le mien stipule :
td qt 3 a écrit:Ajoutez à JeuDuPendu un attribut privé, pendu, par exemple, de type pointeur de Pendu.

Vous pouvez maintenant, après la fermeture de la boîte de dialogue de configuration dans
nouvellePartie(), récupérer le nom du fichier et le nombre de vies 12 et créer le jeu. Veillez à
bien gérer les exceptions levées par le constructeur de Pendu.

par contre, pour la boîte de dialogue, il est mentionné qu'une instanciation automatique fait bien l'affaire.

XavBod a écrit:Etant donné que la méthode qui nous permet d'ouvrir un fichier nous renvoie un QString, il faut transtyper celle-ci en string(via la méthode toStdString() ) et ensuite la convertir en chaine à la C via la méthode c_str().

Donc grâce à ma méthode getFileName() qui me permet d'accéder à l'attribut privé de type QString, je pourrais convertir celui-ci lors de la construction de mon Pendu :

Pendu p(maFenetreConf.getFileName().toStdString().c_str() , maFentereConf.getVies() ) ;

devrait pouvoir me permettre de construire ce Pendu p

Or Eclipse me renvoie une erreur de conflit de type :
undefined reference to `Pendu::Pendu(char const*, unsigned int)


D'apres la doc c_str() retourne un const char * et non pas un char const *........

Si vous avez des indices, je suis preneur

Razz
je dois avouer que ça me laisse perplexe dans la mesure où je procède de la même manière que celle que tu indiques, sans rencontrer le moindre problème...

un petit clean peut-être...








_________________

nvs

Nombre de messages : 5238
Age : 44
Prénom : Nicolas
Statut : prof
Localisation : bxl
Date d'inscription : 24/11/2005

http://nvansteenkiste.googlepages.com

Revenir en haut Aller en bas

resolu Re: [C++] Qt TD3

Message  XavBod le Jeu 18 Mar 2010, 20:46

OUi je vais tout re verifier une fois encore. et Apparement j'ai encore des problèmes pour lire ce beau petit fascicule Laughing

Edit: je vais déjà essayer d'avancer sans pouvoir tester et approfondir l'histoire des Observateurs Wink

XavBod

Nombre de messages : 196
Age : 26
Prénom : Xavier
Statut : Etudiant 3eme indu
Localisation : Woluwe
Date d'inscription : 27/09/2008

Revenir en haut Aller en bas

resolu Re: [C++] Qt TD3

Message  quentger le Jeu 18 Mar 2010, 22:45

XavBod a écrit:Edit: je vais déjà essayer d'avancer sans pouvoir tester et approfondir l'histoire des Observateurs Wink

mais no stop... ca sert a rien d'avancer a l'aveuglette et puis avoir 300 erreur en guirlande sur ton écran... (même si je sais que tu es un grand fan de coder les yeux bander...:p) règle cette erreur (je te montrerai se que j'ai fait de mon coter demain) avance un peu et test souvent se que tu fait... au final ca ira plus vite que de corriger les ampoule défectueuse... ^^

quentger

Nombre de messages : 78
Age : 27
Prénom : Quentin
Statut : 3eme Industriel
Localisation : Alost
Date d'inscription : 23/09/2007

Revenir en haut Aller en bas

resolu Re: [C++] Qt TD3

Message  justblaze le Sam 20 Mar 2010, 18:15

Hello, comme ce topic parle du TD3 Qt, je viens le polluer avec une question !!

Je suis bloqué au niveau de la fermeture de la partie !! Lorsque je ferme la partie, la potence se ferme bien et est décochée, la fenêtre proposition, quand à elle est cachée et détruite "normalement", mais lorsque je lance une autre partie, le menu Observateur montre la fenêtre propositions cochée !! Voici mon code pour la méthode fermerPartie
Code:
void JeuDuPendu::fermerPartie()
{
   if(pendu != 0){
      delete pendu;
      pendu = 0;
   }

   if(obsPro != 0){
      obsPro->hide();
      disconnect(obsPro,SIGNAL(masque()),this,SLOT(decocherMenuProposition()));
      obsPro = 0;
      delete obsPro;
      obsPro = 0;
   }

   if(obsPot != 0){
      obsPot->hide();
      decoche();
      obsPot = 0;
      delete obsPot;
   }

   // deconnexion entre choix de lettre et le slot de controle
   disconnect(ui.cbLettre,SIGNAL(activated(const QString &)),this,SLOT(lettreSelectionnee(const QString &)));

   // remettre fenetre dans un état cohérent
   ui.action_Nouveau->setEnabled(true);
   ui.action_Fermer->setEnabled(false);
   ui.menu_Observateur->setEnabled(false);
   ui.centralwidget->setVisible(false);
}
et le code pour les méthodes decoche et decocherMenuProposition
Code:
void JeuDuPendu::decocherMenuProposition()
{
   ui.action_Proposition->setChecked(false);
}

void JeuDuPendu::decoche()
{
   ui.actionP_otence->setChecked(false);
}
où est l'erreur ?? confused Shocked

merci d'avance Wink


EDIT:
Je crois avoir trouvé mon problème Smile
je dois tout d'abord décocher donc faire appel à la méthode decocherMenuProposition, et ensuite enlever la connexion, ai-je tort ?

justblaze

Nombre de messages : 159
Age : 30
Prénom : Ismael
Statut : Etd 3R11
Localisation : Wolu. St. Lambert
Date d'inscription : 09/11/2006

Revenir en haut Aller en bas

resolu Re: [C++] Qt TD3

Message  nvs le Sam 20 Mar 2010, 20:31

justblaze a écrit:EDIT:
Je crois avoir trouvé mon problème Smile
je dois tout d'abord décocher donc faire appel à la méthode decocherMenuProposition, et ensuite enlever la connexion, ai-je tort ?
le fais de supprimer la connexion n'appelle pas le slot. donc, effectivement, tu dois appeler decocherMenuProposition si tu veux que l'entrée de menu soit décochée. ceci dit, tu peux le faire avant ou après la déconnexion : ce sont des bouts de code indépendants l'un de l'autre.

par contre, détruire un sujet d'observation avant ses observateurs, ça, c'est foireux à 100 %. je te laisse découvrir pourquoi, sachant qu'il y a deux alternatives : ton programme plante ou ton programme ne plante pas, mais alors ton observateur est mal implémenté Twisted Evil

en fait, il y a une troisième alternative, mais je préfère ne pas en parler Wink














_________________

nvs

Nombre de messages : 5238
Age : 44
Prénom : Nicolas
Statut : prof
Localisation : bxl
Date d'inscription : 24/11/2005

http://nvansteenkiste.googlepages.com

Revenir en haut Aller en bas

resolu Re: [C++] Qt TD3

Message  Contenu sponsorisé Aujourd'hui à 20:45


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum