[c++] Probleme avec les classes...

Probleme avec les classes... [c++] - Programmation

Marsh Posté le 03-03-2002 à 16:31:07    

Je voudrais declarer une classe dans un fichier .h et la declarer dans un .c. Cela donne donc:
 
//Fichier Particules.h
 
class Emetteur_particules{
private:
 float gravite;
public:
 void Definir_gravite(float temp_gravite);
}
 
//Fichier Particules.c
#include "Particules.h"
 
Emetteur_particules::Definir_gravite(float temp_gravite)
{
 Emetteur_particules::gravite=temp_gravite;
}
 
et a la compilation ca me dit:
error C2556: 'class Emetteur_particules __thiscall Emetteur_particules::Definir_gravite(float)' : overloaded function differs only by return type from 'void __thiscall Emetteur_particules::Definir_gravite(float)
 
c koi le pbl? je vois pas moa.

Reply

Marsh Posté le 03-03-2002 à 16:31:07   

Reply

Marsh Posté le 03-03-2002 à 16:35:08    

Si tu vois pas c'est grave. :)

Reply

Marsh Posté le 03-03-2002 à 16:36:34    

les lunettes, c le prob :D
indice: type de retour
 
sinon vaut mieux mettre des ext cpp pour du C++


---------------
What butter and whiskey won't cure, there is no cure for.
Reply

Marsh Posté le 03-03-2002 à 16:44:40    

Bah non je vois pas....
Pourriez pas me donner un autre indice.. (voire une solution :) )
Sinon pour les ext c bien des .cpp .

Reply

Marsh Posté le 03-03-2002 à 16:48:14    

Faut mettre un void pour la définition de la méthode.

Reply

Marsh Posté le 03-03-2002 à 16:50:40    

si tu ne met pas de type de retour, le C/C++ va considerer que c int
 
donc d'un coté tu as :
 
 
void Definir_gravite(float temp_gravite);  (ton .h)
 
et
 
 
Emetteur_particules::Definir_gravite(float temp_gravite) (dans le .cpp)
 
 
donc forcement ca colle pas

Reply

Marsh Posté le 03-03-2002 à 16:51:02    

Faut changer le ficher .cpp comme ca?
 
#include "Particules.h"
 
void Emetteur_particules::Definir_gravite(float temp_gravite)
{
 Emetteur_particules::gravite=temp_gravite;
}
 
j'ai essaye ca en tout cas et ca marche pas.
Il me dit que c'est illegal de mettre void devant 'emetteur_particules'

Reply

Marsh Posté le 03-03-2002 à 16:55:53    

Comme l'indique le message d'erreur, j'aurais fait ça :
 
 
void Emetteur_particules:: Definir_gravite(float temp_gravite)
{
   this->gravite=temp_gravite;
}


---------------
"Dieu a exploité tous nos complexes d'infériorité, en commençant par notre incapacité de croire à notre propre divinité." - Emil Michel Cioran
Reply

Marsh Posté le 03-03-2002 à 16:59:53    

je viens de voir un truc, je sais pas si c un oubli quand tu fait ton post, mais :
 
 
class Emetteur_particules{  
private:  
float gravite;  
public:  
void Definir_gravite(float temp_gravite);  
}  
 
 
il faut surtout pas oublier le ";" a la fin de la def d'une classe :
 
 
class Emetteur_particules{  
private:  
float gravite;  
public:  
void Definir_gravite(float temp_gravite);  
};  
 
sinon caca

Reply

Marsh Posté le 03-03-2002 à 17:04:22    

And the Winner is CHRISBK!!!
Mais kel con je suis.............
un ';' apres une classe mais kel CON!!
Excusez moi de vous avoir deranger pour si peu....
Merci a tous.
Sinon j'aimerais en savoir un peu plus sur this ?
Ca fait quoi au juste??

Reply

Marsh Posté le 03-03-2002 à 17:04:22   

Reply

Marsh Posté le 03-03-2002 à 17:06:51    

Yush a écrit a écrit :

And the Winner is CHRISBK!!!
Mais kel con je suis.............
un ';' apres une classe mais kel CON!!
Excusez moi de vous avoir deranger pour si peu....
Merci a tous.
Sinon j'aimerais en savoir un peu plus sur this ?
Ca fait quoi au juste??  




 
this : c'est le pointeur sur l'instance courante.


---------------
"Dieu a exploité tous nos complexes d'infériorité, en commençant par notre incapacité de croire à notre propre divinité." - Emil Michel Cioran
Reply

Marsh Posté le 03-03-2002 à 17:07:30    

okay merci.

Reply

Sujets relatifs:

Leave a Replay

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