Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1425 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [C++][Qt]Erreur: ISO C++ forbids defining types ...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C++][Qt]Erreur: ISO C++ forbids defining types ...

n°930645
Player_One
O'rly?
Posté le 23-12-2004 à 02:05:43  profilanswer
 

Salut, je commence un projet avec Qt et j'ai un petit souci.
Pour l'instant je veux juste faire une fenetre pour pouvoir charger une image.
Je défini donc mon type Fenetre dans fenetre.h à partir du type QMainWindow de Qt:
 

Code :
  1. #ifndef FENETRE_H
  2. #define FENETRE_H
  3. #include<qwidget.h>
  4. #include<qmainwindow.h>
  5. class Fenetre : public QMainWindow
  6. {
  7. public:
  8. Fenetre(QWidget *parent=0, const char *name=0);
  9. ~Fenetre()
  10. QPushButton *OpenBut;
  11. QPushButton *QuitBut;
  12. }
  13. #endif


 
Et je déclare mon type dans fenetre.cpp:
 

Code :
  1. #include<qpushbutton.h>
  2. #include<qpoint.h>
  3. #include"fenetre.h"
  4. Fenetre::Fenetre(QWidget *parent, const char *name)
  5.   : QMainWindow(parent, name)
  6. {
  7.   OpenBut = new QPushButton(this, "OpenBut" );
  8.   QuitBut = new QPushButton(this, "QuitBut" );
  9.   resize(450, 420);
  10.   setCaption("Maestro" );
  11.   OpenBut->setText("Open" );
  12.   QuitBut->setText("Quit" );
  13.   OpenBut->move(QPoint(10, 30));
  14.   QuitBut->move(QPoint(10, 80));
  15.   connect(QuitBut, SIGNAL(clicked()), this, SLOT(quit()));
  16. }
  17. Fenetre::~Fenetre()
  18. {
  19. }


 
 
Et enfin mon main.cpp:
 

Code :
  1. #include<qapplication.h>
  2. #include"fenetre.h"
  3. int main(int argc, char **argv)
  4. {
  5.   QApplication maestro(argc, argv);
  6.   Fenetre MainWin;
  7.   MainWin.show();
  8.   return maestro.exec();
  9. }


 
 
Le code me parait assez clair et pourtant lors de la compilation je me prends:
 

Code :
  1. ...
  2. fenetre.cpp:8: error: ISO C++ forbids defining types within return type
  3. fenetre.cpp:8: error: return type specification for constructor invalid
  4. ...


 
 
Je débute en C++ et je vois pas mon erreur, si vous pouviez m'aider  :hello:


Message édité par Player_One le 23-12-2004 à 02:06:53

---------------
640K ought to be enough for anybody.
mood
Publicité
Posté le 23-12-2004 à 02:05:43  profilanswer
 

n°930678
Lam's
Profil: bas.
Posté le 23-12-2004 à 08:59:46  profilanswer
 

Il manque un point-virgule à la fin de la déclaration de ta classe.

n°930682
mout_de_ra​isin
Posté le 23-12-2004 à 09:10:34  profilanswer
 

ce sont les seules erreurs que tu te prend ? il n'y en a pas d'autres avant ?
[edit] exact ... il manque le ;


Message édité par mout_de_raisin le 23-12-2004 à 09:11:33
n°930689
Lam's
Profil: bas.
Posté le 23-12-2004 à 09:17:17  profilanswer
 

mout_de_raisin a écrit :

ce sont les seules erreurs que tu te prend ? il n'y en a pas d'autres avant ?
[edit] exact ... il manque le ;


A vrai dire, sans même regarder son code, j'aurais pu te dire que c'était ça l'erreur. C'est typique.  
 
Mais il manque quand même une:

blabla.cpp:16:error: semicolon missing after declaration of Fenetre


Quoiqu'il est possible qu'elle arrive après, pour des raisons d'arbre syntaxique...


Message édité par Lam's le 23-12-2004 à 09:17:32
n°930722
mout_de_ra​isin
Posté le 23-12-2004 à 10:30:26  profilanswer
 

C'est bon a savoir ... si jamais j'ai cette erreur une fois, je me souviendrais de ta remarque... Ca ne m'est jamais encore arrive d'oublier ce point virgule la ... mais je suis persuade que le jour ou ca m'arrivera, je mettrais un temps fou pour trouver ... plus c'est con et evident et plus je galere pour trouver la merdouille...

n°930752
Kristoph
Posté le 23-12-2004 à 11:11:45  profilanswer
 

Il manque aussi un ; après la définition de ~Fenetre()

n°930799
HelloWorld
Salut tout le monde!
Posté le 23-12-2004 à 11:40:19  profilanswer
 

Il manque une forward declaration de QPushButton  dans Fenetre.h aussi. Ajoute

Code :
  1. class QPushButton;


juste au dessus de ta classe. Je pense aussi qu'inclure <qwidget.h> n'est pas nécessaire car déjà fait par <qmainwindow.h>.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°930962
Player_One
O'rly?
Posté le 23-12-2004 à 14:19:06  profilanswer
 

Lam's a écrit :

Il manque un point-virgule à la fin de la déclaration de ta classe.


merci, c'était bien ça  :jap:  
 
Kristoph: c'est juste une erreur de recopie
 
HelloWorld: je tiens compte de ta remarque aussi  :jap:


---------------
640K ought to be enough for anybody.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [C++][Qt]Erreur: ISO C++ forbids defining types ...

 

Sujets relatifs
PhpMyAdmin - Erreur 2013erreur de compil bizarre
Erreur de segmentation - appel strsep[C / GTK] erreur avec G_TYPE_CHECK_INSTANCE
yatil un nom pour les menus types mappy.fr ?je cherche un codeServlet - erreur sur l'import
Erreur "Type de données incompatible dans l'expression du ..."[RESOLU]Erreur Installation Oracle --> j'ai besoin d'aide!!
[C] Erreur d'arrondi en float[ASP] Erreur dans le code
Plus de sujets relatifs à : [C++][Qt]Erreur: ISO C++ forbids defining types ...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR