begin process at 2012 05 28 05:04:43
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Divers

 > 

Accès variable / Class


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Accès variable / Class

vendredi 14 septembre 2001 à 15:47:10 | Accès variable / Class

Guillaume

Bonjour, je vous explique le contexte...
J'ai 2 classes :
class TMAC {
public:
void getVAR();
}

et :
class TCX {
public:
int iA;
TMAC macro;
}

Je crée une instance de TCX ...
cx = new TCX;

et pour appeler getVAR je fais naturellement:
cx->macro.getVAR() pas de probleme...

MAINTENANT MON PROBLEME :

quand je crée
TMAC::getVAR() je voudrais pouvoir acceder à iA (de TCX) en sachant que je 'utilise la classe TMAC que pour TCX et si je fais ca c uniquement pour la lisibilité ...(car en fait j'ai pleins d'autres trucs dans les classes et TMAC risque de reservir dans la suite de mon prog ... je sais pas encore)
Aidez moi SVP ...
vendredi 14 septembre 2001 à 16:47:01 | Re : Accès variable / Class

GoldenEye





-------------------------------
Réponse au message : Tes déclarations sont un peu bizarres. En règle générale on déclare private les membres de données ( tels iA et ce même si on s'en sert ailleurs ) et public les fonctions ( telles getVAR(). Je te suggère de déclarer friend la fonction getVAR(). Grosso modo, les fonctions friend ont la capacité d'accéder aux membres private d'une classe.
Pour le code ça devrait être qqch comme ça:

class TMAC {
public:
... ... ... // les fonctions de TMAC sans rapport avec TCX
private:
... ... ... // les données de TMAC ( si il y en a ! )
}

class TCX {
friend int getVAR() { return iA ; } // Renvoie iA de l'objet TCX considéré
public:
... ... // les fonctions de TCX
private:
... ... // les données de TCX
}
Je n'ai pas encore essayé le code parce que je ne sais pas exactement où tu veux en venir. Si ça ne marche toujours pas, poursuis la discussion ( enfin pas trop parce que je suis débutant en POO

GoldenEye
-------------------------------

Bonjour, je vous explique le contexte...
J'ai 2 classes :
class TMAC {
public:
void getVAR();
}

et :
class TCX {
public:
int iA;
TMAC macro;
}

Je crée une instance de TCX ...
cx = new TCX;

et pour appeler getVAR je fais naturellement:
cx->macro.getVAR() pas de probleme...

MAINTENANT MON PROBLEME :

quand je crée
TMAC::getVAR() je voudrais pouvoir acceder à iA (de TCX) en sachant que je 'utilise la classe TMAC que pour TCX et si je fais ca c uniquement pour la lisibilité ...(car en fait j'ai pleins d'autres trucs dans les classes et TMAC risque de reservir dans la suite de mon prog ... je sais pas encore)
Aidez moi SVP ...

vendredi 14 septembre 2001 à 17:02:39 | Re : Accès variable / Class

Guillaume

-------------------------------
Réponse au message :
-------------------------------
oui mais non c pas ca que je veux ...

Je veux dans getVAR() (qui est d'ailleurs declaré dans TMAC) pouvoir faire par exemple printf("%d",iA); (où iA est déclaré dans TCX)

Sinon mes déclarations sont bonnes, je veux pouvoir accéder à iA de l'exterieur ...


-------------------------------
Réponse au message : Tes déclarations sont un peu bizarres. En règle générale on déclare private les membres de données ( tels iA et ce même si on s'en sert ailleurs ) et public les fonctions ( telles getVAR(). Je te suggère de déclarer friend la fonction getVAR(). Grosso modo, les fonctions friend ont la capacité d'accéder aux membres private d'une classe.
Pour le code ça devrait être qqch comme ça:

class TMAC {
public:
... ... ... // les fonctions de TMAC sans rapport avec TCX
private:
... ... ... // les données de TMAC ( si il y en a ! )
}

class TCX {
friend int getVAR() { return iA ; } // Renvoie iA de l'objet TCX considéré
public:
... ... // les fonctions de TCX
private:
... ... // les données de TCX
}
Je n'ai pas encore essayé le code parce que je ne sais pas exactement où tu veux en venir. Si ça ne marche toujours pas, poursuis la discussion ( enfin pas trop parce que je suis débutant en POO

GoldenEye
-------------------------------

Bonjour, je vous explique le contexte...
J'ai 2 classes :
class TMAC {
public:
void getVAR();
}

et :
class TCX {
public:
int iA;
TMAC macro;
}

Je crée une instance de TCX ...
cx = new TCX;

et pour appeler getVAR je fais naturellement:
cx->macro.getVAR() pas de probleme...

MAINTENANT MON PROBLEME :

quand je crée
TMAC::getVAR() je voudrais pouvoir acceder à iA (de TCX) en sachant que je 'utilise la classe TMAC que pour TCX et si je fais ca c uniquement pour la lisibilité ...(car en fait j'ai pleins d'autres trucs dans les classes et TMAC risque de reservir dans la suite de mon prog ... je sais pas encore)
Aidez moi SVP ...


vendredi 14 septembre 2001 à 19:12:15 | Re : Accès variable / Class

GoldenEye





-------------------------------
Réponse au message : OK , je n'avais pas compris ce que tu voulais... Par contre là je ne vois pas vraiment. Je vais essayer de creuser GoldenEye


-------------------------------

-------------------------------
Réponse au message :
-------------------------------
oui mais non c pas ca que je veux ...

Je veux dans getVAR() (qui est d'ailleurs declaré dans TMAC) pouvoir faire par exemple printf("%d",iA); (où iA est déclaré dans TCX)

Sinon mes déclarations sont bonnes, je veux pouvoir accéder à iA de l'exterieur ...


-------------------------------
Réponse au message : Tes déclarations sont un peu bizarres. En règle générale on déclare private les membres de données ( tels iA et ce même si on s'en sert ailleurs ) et public les fonctions ( telles getVAR(). Je te suggère de déclarer friend la fonction getVAR(). Grosso modo, les fonctions friend ont la capacité d'accéder aux membres private d'une classe.
Pour le code ça devrait être qqch comme ça:

class TMAC {
public:
... ... ... // les fonctions de TMAC sans rapport avec TCX
private:
... ... ... // les données de TMAC ( si il y en a ! )
}

class TCX {
friend int getVAR() { return iA ; } // Renvoie iA de l'objet TCX considéré
public:
... ... // les fonctions de TCX
private:
... ... // les données de TCX
}
Je n'ai pas encore essayé le code parce que je ne sais pas exactement où tu veux en venir. Si ça ne marche toujours pas, poursuis la discussion ( enfin pas trop parce que je suis débutant en POO

GoldenEye
-------------------------------

Bonjour, je vous explique le contexte...
J'ai 2 classes :
class TMAC {
public:
void getVAR();
}

et :
class TCX {
public:
int iA;
TMAC macro;
}

Je crée une instance de TCX ...
cx = new TCX;

et pour appeler getVAR je fais naturellement:
cx->macro.getVAR() pas de probleme...

MAINTENANT MON PROBLEME :

quand je crée
TMAC::getVAR() je voudrais pouvoir acceder à iA (de TCX) en sachant que je 'utilise la classe TMAC que pour TCX et si je fais ca c uniquement pour la lisibilité ...(car en fait j'ai pleins d'autres trucs dans les classes et TMAC risque de reservir dans la suite de mon prog ... je sais pas encore)
Aidez moi SVP ...


samedi 15 septembre 2001 à 23:32:10 | Re : Accès variable / Class

pornik

esc je rêve ou bien je vous vois oublier les points-virgules apres l'} fermente de la classe??

class TMAC {
public:

private:
... ... ...
} ; // <=== ce pt1 de ;


soit g fumé qqch et le ; n'est pa nécessaire, soit c'est un oubli que vous avez fait, soit le compilateur que vous utilisez est très coopératif et s'adapte a ce style d'écriture ;-) nan séieusement je me trompe??



-------------------------------
Réponse au message :
-------------------------------





-------------------------------
Réponse au message : OK , je n'avais pas compris ce que tu voulais... Par contre là je ne vois pas vraiment. Je vais essayer de creuser GoldenEye


-------------------------------

-------------------------------
Réponse au message :
-------------------------------
oui mais non c pas ca que je veux ...

Je veux dans getVAR() (qui est d'ailleurs declaré dans TMAC) pouvoir faire par exemple printf("%d",iA); (où iA est déclaré dans TCX)

Sinon mes déclarations sont bonnes, je veux pouvoir accéder à iA de l'exterieur ...


-------------------------------
Réponse au message : Tes déclarations sont un peu bizarres. En règle générale on déclare private les membres de données ( tels iA et ce même si on s'en sert ailleurs ) et public les fonctions ( telles getVAR(). Je te suggère de déclarer friend la fonction getVAR(). Grosso modo, les fonctions friend ont la capacité d'accéder aux membres private d'une classe.
Pour le code ça devrait être qqch comme ça:

class TMAC {
public:
... ... ... // les fonctions de TMAC sans rapport avec TCX
private:
... ... ... // les données de TMAC ( si il y en a ! )
}

class TCX {
friend int getVAR() { return iA ; } // Renvoie iA de l'objet TCX considéré
public:
... ... // les fonctions de TCX
private:
... ... // les données de TCX
}
Je n'ai pas encore essayé le code parce que je ne sais pas exactement où tu veux en venir. Si ça ne marche toujours pas, poursuis la discussion ( enfin pas trop parce que je suis débutant en POO

GoldenEye
-------------------------------

Bonjour, je vous explique le contexte...
J'ai 2 classes :
class TMAC {
public:
void getVAR();
}

et :
class TCX {
public:
int iA;
TMAC macro;
}

Je crée une instance de TCX ...
cx = new TCX;

et pour appeler getVAR je fais naturellement:
cx->macro.getVAR() pas de probleme...

MAINTENANT MON PROBLEME :

quand je crée
TMAC::getVAR() je voudrais pouvoir acceder à iA (de TCX) en sachant que je 'utilise la classe TMAC que pour TCX et si je fais ca c uniquement pour la lisibilité ...(car en fait j'ai pleins d'autres trucs dans les classes et TMAC risque de reservir dans la suite de mon prog ... je sais pas encore)
Aidez moi SVP ...



mardi 18 septembre 2001 à 10:48:44 | Re : Accès variable / Class

Lu


Ton problème provient probablement d'une mauvaise conception des tes classes.

Les cas où deux classes ont besoin de se connaître mutuellement ne sont pa ss courants.

Malgré tout, si tu y tiens vraiment :
- si ta relation entre une instance de chacune des deux classes est une relation forte, tu peux définir par exemple l'attribut de TMAX : TCX & TMAX::m_tcx
- si la relation n'existe pas forcément, tu peux éventuellement faire pareil mais avec un pointeur au lieu d'une référence
- en général, le problème que tu me décrit provient d'une mauvaise vision des dépendances ; dans ton cas, pourquoi ne pas passer TCX en pramètre de TMAX::getVar() ? C'est souvent un tort d'avoir peur d'ajouter des paramètres car on risque de se retrouver avec des tas d'attributs qui ne servent qu'à éviter de répéter des paramètres, et qui rendent la classe confuse, mal définie, difficilement utilisable et pleine de bugs.

-------------------------------
Réponse au message :
-------------------------------

Bonjour, je vous explique le contexte...
J'ai 2 classes :
class TMAC {
public:
void getVAR();
}

et :
class TCX {
public:
int iA;
TMAC macro;
}

Je crée une instance de TCX ...
cx = new TCX;

et pour appeler getVAR je fais naturellement:
cx->macro.getVAR() pas de probleme...

MAINTENANT MON PROBLEME :

quand je crée
TMAC::getVAR() je voudrais pouvoir acceder à iA (de TCX) en sachant que je 'utilise la classe TMAC que pour TCX et si je fais ca c uniquement pour la lisibilité ...(car en fait j'ai pleins d'autres trucs dans les classes et TMAC risque de reservir dans la suite de mon prog ... je sais pas encore)
Aidez moi SVP ...



Cette discussion est classée dans : class, accès, getvar, tcx, tmac


Répondre à ce message

Sujets en rapport avec ce message

Heeeelp .... [ par Guillaume ] J'ai ca : (programme tres simplifié ... bien sur ...)#include #include class TMAC { public: void getVAR();};void TMAC::getVAR() { printf("%d\n",Ai); Myth et Class [ par Xs ] salut !tous le monde a deja vu des programmes/installateurs warez des groupes warez Myth ou Class, non ?bon eh bien, je voudrais savoir comment ils fo class pour manipuler des grands nombres [ par Orkblutt ] Salut,j'aimerai implementer une classe qui me permettrai de manipuler (+,-, /,*,%) des grands nombres (Nb>32bits) mais je ne sais pas du tout comment Accès BD ODBC [Compilateur:Borland] [ par wood51 ] Je ne sais pas comment accéder à une Bd (Access )ODBC .J'ai essayer ADOLib mais borland n'accepte pas la directive #import .Si quelqu'un pouvait m'écl pb de class [ par Xs ] salut !!je suis en train de faire un programme en relation avec mendeleiev.il se trouve que j'ai fait mon prog comme ceci (avec un squellette similair la class de progressbar marche comment ??? [ par Xs ] salut !!!je ne sais plus qui, mais quelqu'un a déposé une source pour la progress bar : comment s'en sert-on passke ca fait je sais pas combien de foi Probleme de compilation [ par draken ] Bonjour à tous ,mon but est de placer chaque classe dans chaque fichier --> utilisation separee des classes VOICI LE PROBLEME Les «class» pour débutant [ par cognac ] Voici un petit programme:|||||||||||||| constante.h||||||||||||#ifndef CONSTANTES#define CONSTANTES#include #include using namespace std;const int a=5 Pb Class et pointeur ... [ par payen ] salut a tous,j'ai un petit probleme en C++: j'ai definit une class CImage, avec entre autre, un pointeur vers une variable de type char (char *nom_ima chemin d'accès [ par coockiesch ] Pourquoi lorsqu'on travaille avec les fichiers, il faut deux '/' par répertoire; par ex: c:\\winnt\\cmd.exeMerci


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 5,413 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales