Passage de variables entre deux classes

Passage de variables entre deux classes - C++ - Programmation

Marsh Posté le 10-05-2008 à 18:46:03    

Bonjour, voici le petit problème sur lequel je suis tombé et je ne parviens pas à proprement le résoudre :
 
J'aimerai pouvoir accéder depuis une fonction membre d'une classe cl1 à une variable statique d'une classe cl2 mais je trouve pas comment faire ???
 
Je vous remercie par avance de votre aide
 
NC
 
ps : j'ai essayé d'appeler la variable dans la fonction par cl2::la_variable_statique mais ca ne fonctionne pas :(


Message édité par nisalon_caje le 10-05-2008 à 18:51:38
Reply

Marsh Posté le 10-05-2008 à 18:46:03   

Reply

Marsh Posté le 10-05-2008 à 19:42:43    

cl2::variable
 
À condition qu'elle soit publique. Sinon tu fais comme tout le monde, et t'écris un getter :o

Reply

Marsh Posté le 10-05-2008 à 19:52:18    

il ne veut pas ;( il me met :
segment.cpp `dist_min' undeclared (first use this function)

Reply

Marsh Posté le 10-05-2008 à 19:58:49    

... et un getter ne me motive pas trop car cela voudrait dire qu'il faudrait, à moins que je ne me trompe ce qui est fort probable, que je fasse un appel explicite à un objet de la classe cl2 non ???

Reply

Marsh Posté le 10-05-2008 à 20:12:26    

Un getter ça peut être static aussi, sinon t'as bien fait un include de ton autre classe ?

Reply

Marsh Posté le 10-05-2008 à 20:16:32    

nisalon_caje a écrit :

il ne veut pas ;( il me met :
segment.cpp `dist_min' undeclared (first use this function)


 
Poste les morceaux de code qui montrent ce comportement.
 

nisalon_caje a écrit :

... et un getter ne me motive pas trop car cela voudrait dire qu'il faudrait, à moins que je ne me trompe ce qui est fort probable, que je fasse un appel explicite à un objet de la classe cl2 non ???


 
Pas si le getter est statique.

Reply

Marsh Posté le 10-05-2008 à 20:25:45    

bon sang je viens de trouver :)
 
en fait j'avais deux fois un appel à cette variable dans ma ligne et je n'avais mis le cl2:: que pour une seule ^^

Reply

Marsh Posté le 10-05-2008 à 21:09:06    

je vien de tester et le compilateur me met   [Linker error] undefined reference to `cl2::dist_min' :
 
le code est :

Code :
  1. void cl1::pts_entour(){
  2. // du code
  3. U=((pt[1]-G)*(1.0+cl2::dist_min/(lg/2.0))+nm*cl2::dist_min) + G;
  4. //du code
  5. }
  6. et dans ma classe cl2 j'ai
  7. class cl2 {
  8. // plein de choses
  9. public:
  10. static float dist_min;
  11. };
  12. et j'attribue une valeur à dist_min dans le constructeur :
  13. cl2(){
  14. dist_min=2.0;
  15. // plein d'autre choses
  16. }


 
 
voila merci d'avance ^^

Reply

Marsh Posté le 10-05-2008 à 22:50:22    

static float dist_min;
 
c'est une déclaration, il faut définir cette variable (on fait pas du java ici !)
 
mettre :
 
float cl2::dist_min;
 
dans un fichier .cpp (pas un .h !!)

Reply

Sujets relatifs:

Leave a Replay

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