C++ : mais qu'es qui s'passe !!!

C++ : mais qu'es qui s'passe !!! - Programmation

Marsh Posté le 10-05-2001 à 09:35:14    

:??: je comprend pas, je viens de créer une nouvelle classe, avec donc son constructeur qui est commme ça dans le .cpp :
 
CLanTache::CLanTache ()
{
   int num = 0;
   
 
   // Retour
   return;
}
 
et déclaré comme ça dans mon .h:
 
class CLanTache : public CObject
{
 
public:  
  //constructeur
  CLanTache (int _num, CString _type, CString _arg1, CString _arg2, CString _libelle);
 
}
 
 :??:  
 
...tout bête quoi !
 
et à la compilation, g l'erreure qui suit:
error C2533: 'CLanTache::CLanTache' : constructors not allowed a return type
 
C'est bien sur pas le return du constructeur qui gène, vu qu'il n'y a pas de type, mais c quoi alors !?????

Reply

Marsh Posté le 10-05-2001 à 09:35:14   

Reply

Marsh Posté le 10-05-2001 à 09:41:43    

Euh si faut pas mettre de return à la fin d'un constructeur.
Et puis les prototypes des 2 constructeurs ne correspondent pas !

Reply

Marsh Posté le 10-05-2001 à 09:43:45    

ha, non, mais je suis lourd, les prototypes c les mêmes maintenant
et le return, qu'il y soit ou non c pareil (même erreure)
et g une autre classe qui à un constructeur avec un return à la fin...tout va bien !

Reply

Marsh Posté le 10-05-2001 à 09:49:56    

bon, je refout mon code plus proprement:
LanTache.cpp:
 
#include "stdafx.h"
#include "LanApp.h"
#include "LanTache.h"
 
 
CLanTache::CLanTache ()
{
   int num = 0;
   
 
   // Retour
   return;
}
 
BOOL CLanTache::InitTache(int _num, char _type, CString _type2, CString _arg1, CString _arg2, CString _libelle)
{
   return TRUE;
}
 
LanTache.h:
 
   class CLanTache : public CObject
   {
 
   public:  
 //constructeur
 CLanTache ();
 
       BOOL InitTache(int _num, char _type, CString _type2,  CString _arg1, CString _arg2, CString _libelle);
 
 
   protected:
 
      // Définition de la structure des tâches
      typedef struct _TACHE
      {
         int       num;                
         char      type
         CString   type2
         CString   arg1;                
         CString   arg2;                
         CString   libelle;            
      } TACHE;
 
 
 
      TACHE m_tache;
 
}

Reply

Marsh Posté le 10-05-2001 à 10:15:19    

Moi je commencerais par nettoyer ce code melange de C et de C++...
le typedef est inutile (je ne vois d'ailleurs pas l'interet de la struct TACHE)
-> struct TACHE
{....
};
de meme utilise des bool a la place des BOOL (et des string a la place des CString)
et pense au ; a la fin de la classe CLanTache
 
si effectivement ce dernier ; manque il est sana doute la cause de tout tes soucis

Reply

Marsh Posté le 10-05-2001 à 10:23:55    

il se passe que tu viens de te reveiller et que tu t'es apperçu que tu etais en stage et que tu n'avais pas avancé depuis ton arrivé...
Mieux vaux tard que jamais pour se reveiller.....

Reply

Marsh Posté le 10-05-2001 à 10:26:01    

...si la structure à l'air inutile, c que mon code est pas terminé, ça servira + tard !
Pour le reste, j'vais voir, ms c clair que j'pourrais pas tout changer

Reply

Marsh Posté le 10-05-2001 à 10:28:36    

personnelement, le return dans le constructeur me choque....
je suppose que tas essayer sans ?
 
puis tas qu'a le faire en java aussi...
 
tiens, puisque tu fais du c++, tu vas peut-etre pouvoir m'aider :
j'essaye de faire une interface graphique avec borland C++ et je trouve pas commment faire une barre de menu et ces options ...
(c'est tellement plus simple en java) ...
 
si tas une idée.... ou des adresses où je pourrais en trouver...

 

[edit]--Message édité par Moustaaki--[/edit]

Reply

Marsh Posté le 10-05-2001 à 10:29:30    

BENB faisait juste remarquer qu'en C++, on faisait plutôt:

Code :
  1. struct toto {
  2. };


 
que :

Code :
  1. typedef struct _toto {
  2. } toto;


 
D'ailleurs il ne faudrait pas apprendre le C avant le C++ :)

Reply

Marsh Posté le 10-05-2001 à 10:45:50    

Moustaaki a écrit a écrit :

personnelement, le return dans le constructeur me choque....
je suppose que tas essayer sans ?
 
puis tas qu'a le faire en java aussi...
 
tiens, puisque tu fais du c++, tu vas peut-etre pouvoir m'aider :
j'essaye de faire une interface graphique avec borland C++ et je trouve pas commment faire une barre de menu et ces options ...
(c'est tellement plus simple en java) ...
 
si tas une idée.... ou des adresses où je pourrais en trouver...
 
 




 
Moi aussi je viens du Java, et c clair que c plus simple, j'en ai chié au début.
 
Pour faire tes menus, barres d'outils, ... en fait, moi j'utilise Visual C++. Mais ça revient au même, enfin je pense:
 
t'as forcément un doc sur les fonctions que tu peux utiliser (style MSDN) la dedant, cherche MFC: c une bibliothèque de fonctions Microsoft pr C++(pr ce que tu veux entre autres) , ms je sais pas si elles sont livrées avec Borland.
Sinon cherche sur le site de Microsoft, du coté de API windows
...bonne chance, je suis passé par la y a pas longtemps !

Reply

Marsh Posté le 10-05-2001 à 10:45:50   

Reply

Marsh Posté le 10-05-2001 à 10:55:18    

Vous confondez le langage et les bibliothèques graphiques.
En c++ il existe des bibliothèques graphiques très simples d'utilisation, comme les VCL livrées avec C++ Builder. Mais il y en a plein d'autres....


---------------
[:seblamb] Moi aussi je veux grater dédé!!!
Reply

Marsh Posté le 10-05-2001 à 11:01:43    

...dont les MFC, je sais bien, g pas dis que ça appartenai aux C++ ![#00b846]

Reply

Marsh Posté le 10-05-2001 à 11:28:47    

Verdoux a écrit a écrit :

BENB faisait juste remarquer qu'en C++, on faisait plutôt:

Code :
  1. struct toto {
  2. };


 
que :

Code :
  1. typedef struct _toto {
  2. } toto;


 
D'ailleurs il ne faudrait pas apprendre le C avant le C++ :)




 
Pour la forme oui...
Mais aussi qu'il faut un ";" a la fin de la declaration d'une classe, peut-etre est il parti lors du copier-colle, mais il arrive qu'il manque et que l'inclusion du .h soit juste avant l'implementation du contructeur et le compilo vois alors qq chose comme:
class toto {...} toto::toto()
{
}
 
et il cherche alors a dire que l'implementation du constructeur de toto remvoie une classe toto...
 
comme on n'a qu'une partie du code...
 
ceci dit  
1- Il est preferable d'utiliser les bool aux BOOL (true & false plutot que TRUE et FALSE) sauf implication Windows trop forte
2- effet j'ai dit que je ne voyais l'interet de la structure, mais je l'ai mis entre parentheses, car je suppose que je ne vois pas toute la classe...

Reply

Marsh Posté le 10-05-2001 à 11:33:43    

El_gringo a écrit a écrit :

 
 
Moi aussi je viens du Java, et c clair que c plus simple, j'en ai chié au début.
 
Pour faire tes menus, barres d'outils, ... en fait, moi j'utilise Visual C++. Mais ça revient au même, enfin je pense:
 
t'as forcément un doc sur les fonctions que tu peux utiliser (style MSDN) la dedant, cherche MFC: c une bibliothèque de fonctions Microsoft pr C++(pr ce que tu veux entre autres) , ms je sais pas si elles sont livrées avec Borland.
Sinon cherche sur le site de Microsoft, du coté de API windows
...bonne chance, je suis passé par la y a pas longtemps !




 
Il me semble que la derniere version de Borland C++ Builder est livree avec la plupart des framework existants ou ayant existes
OWL, VCL, mais aussi MFC, il y a aussi RTL... :sweat:
Mais sans doute ceci depends du package... :(

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed