Accés à une même case mémoire sous c++

Fermé
farfattou - 12 mars 2008 à 10:23
 farfattou - 13 mars 2008 à 10:33
Bonjour,
je viens de déclarer et calculer une variable dans les fichiers mac802_11.h et mac802_11.cc.
je veux accéder à cette même variable dans AODV.cc qui se trouve dans un paquetage différent de celui de mac802_11.cc.
j'ai déjà inclut le mac/ mac802_11.h dans Aodv.h, j'ai en olus déclaré la classe mac802_11 comme friend de la classe AODV, mais l'accés à la variable dont je perlais est impossible. En l'affichant dans AODV elle est toujours nulle.
est ce que qulqu'un pourrait m'aider svp.
je vous serai énormément reconnaissante merci bien
j'attends vos réponse.
à bientôt

2 réponses

Utilisateur anonyme
12 mars 2008 à 14:55
Pourrais tu nous donner des morceaux de code pour y voir un peu plus clair stp ?
0
bonjour ,
Tout d'abord mac-802_11.h et mac-802_11.cc se trouvent sous le paquetage mac.
j'ai déclaré le paramètre dont je parlais sous mac-802_11.h et plus précisement dans la classe Mac802_11

public: double facteur;
friend class AODV;

ensuite dans mac-802_11.cc, j'ai implémenté ce paramètre

Ensuite, j'aimerai accéder au paramètre factrue dans AODV.cc qui se trouve dans le paquetage aodv. pour ce faire:

dans le fichier aodv.h
#include <mac/mac-802_11.h >
class AODV:
Mac802_11* mac;

dans le fichier aodv.cc;

tcl.evalf("puts\"facteur=%f\"",mac->facteur);

voilà le problème est que cette affichage donne toujours 0 malgré que le paramètre est bel et bien calculé et non nul quand je porte l'affichage dans mac-802_11.cc.

j'ai même essayé de travailler avec deux méthodes setfacteur(...) et getfacteur():

dans le fichier mac-802_11.h
public:
inline void setfacteur(double f){facteur=f;}
inline double getfacteur(){return(facteur);}

dans le fichier mac-802_11.cc
facteur=....;
setfacteur(facteur);

dans aodv.cc:

tcl.evalf("puts\"facteur=%f\"",mac->getfacteur());


toujours même problème.

voilà est ce que vous pourriez me quidez un peu
merci bien
très reconnaissante
à bientôt
Fatma
0
Mahmah Messages postés 496 Date d'inscription lundi 17 septembre 2007 Statut Membre Dernière intervention 22 juin 2010 125
12 mars 2008 à 18:03
Bonjour,

De ce que j'ai compris tu as opéré le mauvais patient. Comme le disait mes pdf de cours, l'ami est celui qui peut toucher vos parties intimes. Il faudrait donc que mac802_11 déclare que AODV est son amie et qu'elle peut donc tout voir.
Ce n'est pas parce que quelqu'un estime être ton ami qu'il peut tout voir de toi, c'est toi qui décide et laisse faire.

Exception en C++: deux instances d'une même classe peuvent accéder aux membres privés de l'une et l'autre. (Pratique pour les constructeurs de copie)

M.
0