C++ : mais qu'es qui s'passe !!! - Programmation
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 !
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 !
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;
}
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
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.....
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
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]
Marsh Posté le 10-05-2001 à 10:29:30
BENB faisait juste remarquer qu'en C++, on faisait plutôt:
Code :
|
que :
Code :
|
D'ailleurs il ne faudrait pas apprendre le C avant le C++
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 !
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....
Marsh Posté le 10-05-2001 à 11:01:43
...dont les MFC, je sais bien, g pas dis que ça appartenai aux C++ ![#00b846]
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:
|
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...
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...
Mais sans doute ceci depends du package...
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 !?????