Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3468 connectés 

  FORUM HardWare.fr
  Programmation

  [C++] Comment feriez-vous dans cette situation?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C++] Comment feriez-vous dans cette situation?

n°112237
Alload
Posté le 14-03-2002 à 18:54:07  profilanswer
 

Voici la situation: je dispose d'une classe hébergeant plusieurs variables vitales au fonctionnement de mon programme, et j'aimerais lui lier le plus simplement possible des classes filles qui auront accès à ces variables (pas seulement un héritage de la classe principale, un vrai accès à ces données). La classe principale devra aussi avoir accès aux fonctions de ces classes filles.
 
Quelles sont les solutions à ce problème?

 

[jfdsdjhfuetppo]--Message édité par Alload--[/jfdsdjhfuetppo]

mood
Publicité
Posté le 14-03-2002 à 18:54:07  profilanswer
 

n°112247
deathsharp
Posté le 14-03-2002 à 19:05:38  profilanswer
 

:heink:  
la classe base devra appeler les fonctions des classes filles ?
donc cree des obj fille ? :heink:


---------------
What butter and whiskey won't cure, there is no cure for.
n°112248
Alload
Posté le 14-03-2002 à 19:07:00  profilanswer
 

Oui ça je sais, mais comment faire pour que les objets filles puissent utiliser les variables private ou protected de la classe où elles se trouvent?

n°112249
SoWhatIn22
Posté le 14-03-2002 à 19:08:07  profilanswer
 

Tu peux déclarer les classes comme étant friend les unes des autres.
class B;
class A
{
    // ...
private:
    friend class B;
};
 
class B
{
    // ...
private:
    friend class A;
 
};
 
Dans cette situation, la classe A a un acces total à la classe B et inversement. C'est pas très beau, mais ca fait exactement ce que tu demandes...
 
a+

n°112254
deathsharp
Posté le 14-03-2002 à 19:13:58  profilanswer
 

t sur de ta conception la :heink:


---------------
What butter and whiskey won't cure, there is no cure for.
n°112257
Alload
Posté le 14-03-2002 à 19:18:37  profilanswer
 

Bon je comprends l'idée mais comment la mette en oeuvre, prenons un exemple:
 
class CPere
{
public:
void DireLaTailleDeSaFamille() {cout << nNombreDeGensDansLaFamille << endl;}
};
 
class CFamille
{
int nNombreDeGensDansLaFamille;
CPere pere;
};
 
 
Voilà, c'est théorique car ça marcherait pas, mais vous comprenez l'idée.

 

[jfdsdjhfuetppo]--Message édité par Alload--[/jfdsdjhfuetppo]

n°112258
deathsharp
Posté le 14-03-2002 à 19:20:04  profilanswer
 

:heink:  
ca ressemble a po grand chose


---------------
What butter and whiskey won't cure, there is no cure for.
n°112261
Alload
Posté le 14-03-2002 à 19:26:17  profilanswer
 

:lol: C'est quand même pas sorcier ce que j'aimerais faire, initialiser un objet dans une classe, objet qui pourra utiliser les variables de ladite classe sans passer par un pointeur. Quand je dit utiliser c'est pas juste hériter des variables de la classe, c'est pouvoir accèder à celles-ci.

n°112344
Alload
Posté le 14-03-2002 à 22:55:32  profilanswer
 

Comment on déclarer une classe friend dans une autre classe?
 
De plus, que veut réellement dire friend? Qu'elles auront en commun les mêmes variables, ou juste les mêmes définitions de variables?

n°112356
LeGreg
Posté le 14-03-2002 à 23:05:05  profilanswer
 

Alload a écrit a écrit :

Comment on déclarer une classe friend dans une autre classe?
De plus, que veut réellement dire friend? Qu'elles auront en commun les mêmes variables, ou juste les mêmes définitions de variables?  




ni l'une ni l'autre.
 
Une fonction friend ou les methodes d'une classe
friend peut acceder
aux membres prives d'une classe qui l'a
declaree comme friend.
(l'inverse n'est pas vrai: tu n'as pas le droit
d'acceder aux membres prives d'une classe
en la declarant toi-meme amie.)
 
LEGREG

mood
Publicité
Posté le 14-03-2002 à 23:05:05  profilanswer
 

n°112387
Alload
Posté le 15-03-2002 à 07:05:11  profilanswer
 

legreg a écrit a écrit :

 
Une fonction friend ou les methodes d'une classe
friend peut acceder
aux membres prives d'une classe qui l'a
declaree comme friend.


Si j'ai bien compris, la classe Y déclarée comme friend dans la classe X pourra utiliser les variables de X mais X ne pourra pas utiliser les variables de Y?
 
Si c'est ça, c'est ce qu'il me faut, donc comment déclarer une classe Y friend dans une classe X?

n°112391
Rob Roy
Posté le 15-03-2002 à 07:31:58  profilanswer
 

dans ta declaration de classe X tu rajoute,
friend class Y;
 
sinon selectionne friend, et appuie sur f1 c expliqué en general!

 

[jfdsdjhfuetppo]--Message édité par Rob Roy--[/jfdsdjhfuetppo]

n°112397
El_gringo
Posté le 15-03-2002 à 08:53:04  profilanswer
 

Ou alors, une classe interne. Tu défini ta classe fille dans la définition de ta classe mère, genre:
 
class CClassMere
{
 
public:
  ...
 
private:
  class CClassFille
  {
  public:
  ...
  private:
  ...
  }
}
 
Bien sur, tu pourrais aussi bien déclarer CClassFille comme membre public de CClassMere.
 
De cette façon, je crois que les 2 classes ont accès à ts les membres de chaque classe.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [C++] Comment feriez-vous dans cette situation?

 

Sujets relatifs
Plus de sujets relatifs à : [C++] Comment feriez-vous dans cette situation?


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)