Au secours !<Prog. C++>

Fermé
Guillaume - 17 sept. 2001 à 10:29
 Nounou - 18 sept. 2001 à 16:05
J'ai ca : (programme tres simplifié ... bien sur ...)

#include <stdio.h>
#include <unistd.h>

class TMAC {
public:
void getVAR();
};

void TMAC::getVAR() {
// extern int Ai;
printf("%d\n",Ai); // le Ai de TCX !!!
}

class TCX {
public:
int Ai;
TMAC macro;
TCX();
};

TCX::TCX() {
Ai = 2;
}

int main() {
TCX * cx;
cx = new TCX;
cx->macro.getVAR();
exit(1);
}

Je voudrais que ca marche !!! Je voudrais pouvoir accéder à Ai dans getVar() !! j'ai essayé avec extern int Ai; dans getVAR() (ligne en commentaire) mais ca marche pas non plus

J'ai des erreurs de compilation ...
J'ai vraiment besoin de trouver une méthode ... je ne peux pas changer de facon de faire , mon programme est trop avancé ... et j'ai absolument besoin d'accéder à Ai !!

Note : Je suis un novice ce qui explique cette erreur de conception que j'avais pensé possible au départ ...

Si quelqu'un a une soluce ... Merci d'avance !
A voir également:

3 réponses

essais de declarer TCX Comme ami de Tmac
0
Désolé ça ne marche pas la seule façon que nous avons trouvé
(nous etions trois dessus c'est en envoyant Ai en parametre de
GetVar();
0
Merci beaucoup mais j'ai trouvé une solution encore mieux :
class TCX;
class TMAC {
TCX * pCX;
void GetVar();
};
class TCX {
int Ai;
TCX();
TMAC macro;
};
TCX::TCX() {
macro.pCX = this;
}
TMAC::GetVar() {
printf("%d",pCX->Ai);
}

et ca, ca marche !! c mieux car ce morceaux de declaration est tres simplifié par rapport à la réalité car en fait dans TCX il'y a d'autres variables que j'aurais bien voulu avoir dans GetVar() donc j'allais pas m'emmerder à redéclarer toutes les variables dans TMAC car dans ce cas là il aurait mieux fallu que je mette GetVar() dans TCX ...
Merci quand meme ...
0
salut

J´ai essaye de faire ce que apiai t´avait recomender de faire et je peux te idre que ca marche .
je te file le code que j´ai utilise


#include<iostream>
using namespace std;


class TMAC {
public:
TMAC();
void getVAR();
int TCX;
private:
int Ai;
};

TMAC::TMAC()
{ Ai=2;
}

void TMAC::getVAR() {
// extern int Ai;
printf("%d\n",Ai); // le Ai de TCX !!!
}

class TCX
{
public:
TCX();
//int Ai;
TMAC macro;

};



TCX::TCX()
{
}

int main() {

TCX * cx;
cx = new TCX;
cx->macro.getVAR();
return 0;
}




bonne chance
0