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

  FORUM HardWare.fr
  Programmation
  C++

  tranformer une fonction private en public

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

tranformer une fonction private en public

n°1979079
snafu8
Posté le 30-03-2010 à 17:07:23  profilanswer
 

Salut à tous,
 
J'ai une classe Maman qui ressemble à ça :  
 

Code :
  1. class Maman
  2. {
  3. public:
  4. /*trucs ininterresant*/
  5. private:
  6. /*trucs ininteressants*/
  7. void MaFonction(void);
  8. }


 
MaFonction agit sur des données privées uniquement. Le mec qui a développé cette classe ne pensait pas que cette fonction puisse un jour être appellée d'où le private. Seulement voilà, depuis j'ai définie une classe Fifille:
 

Code :
  1. class Fifille : public Maman
  2. {
  3. /*pleins de trucs*/
  4. }


 
Et je suis dans le cas non prévu où je dois pouvoir appellé MaFonction directement.
J'ai pensé à faire ça:

Code :
  1. class Fifille : public Maman
  2. {
  3. void MaFonctionRusee(void){Maman::MaFonction();};
  4. }


Mais bien sûr le compilateur n'est pas dupe. Comment puis-je faire pour contourner cet insoluble problème?

mood
Publicité
Posté le 30-03-2010 à 17:07:23  profilanswer
 

n°1979082
Un Program​meur
Posté le 30-03-2010 à 17:14:31  profilanswer
 

Sans modifier Maman, tu ne peux rien faire.  


---------------
The truth is rarely pure and never simple (Oscar Wilde)
n°1979086
snafu8
Posté le 30-03-2010 à 17:18:46  profilanswer
 

Ce n'est pas cool.

n°1979096
Un Program​meur
Posté le 30-03-2010 à 17:26:39  profilanswer
 

C'est un peu le principe de private.  (Outre mettre ce que tu veux utiliser public, tu peux mettre l'utilisateur friend, mais il faut aussi modifier Maman).


---------------
The truth is rarely pure and never simple (Oscar Wilde)
n°1979107
theshockwa​ve
I work at a firm named Koslow
Posté le 30-03-2010 à 17:38:54  profilanswer
 

Code :
  1. #define private public


De rien :sol:  
 
Edit : et plus sérieusement, c'est quoi le problème que tu as, pour ne pas vouloir modifier la classe mère ?


Message édité par theshockwave le 30-03-2010 à 17:40:18

---------------
last.fm
n°1979115
Un Program​meur
Posté le 30-03-2010 à 17:44:14  profilanswer
 

Comportement indefini des que tu inclus un entête standard avec ce define.


---------------
The truth is rarely pure and never simple (Oscar Wilde)
n°1979119
in_your_ph​ion
Posté le 30-03-2010 à 17:48:24  profilanswer
 

lance un mandat d'arrêt international contre ce dévelopeur

n°1979124
theshockwa​ve
I work at a firm named Koslow
Posté le 30-03-2010 à 17:51:03  profilanswer
 

Un Programmeur a écrit :

Comportement indefini des que tu inclus un entête standard avec ce define.


 
oui, enfin, c'était pas sérieux hein [:pingouino]  


---------------
last.fm
n°1979125
Elmoricq
Modérateur
Posté le 30-03-2010 à 17:51:52  profilanswer
 

sodobangravierpelleàclous

 

Quand on a un doute, on met en protected, pas en private. Bref, faut modifier "Maman". Si tu as le code, passe juste la fonction en protected, et tu devrais faire ce que tu souhaites avec un minimum d'impact sur la classe mère.


Message édité par Elmoricq le 30-03-2010 à 17:52:22
n°1979126
snafu8
Posté le 30-03-2010 à 17:56:05  profilanswer
 

Vous partez tous du principe que j'ai les sources, c'est émouvant.

mood
Publicité
Posté le 30-03-2010 à 17:56:05  profilanswer
 

n°1979128
theshockwa​ve
I work at a firm named Koslow
Posté le 30-03-2010 à 18:00:03  profilanswer
 

snafu8 a écrit :

Vous partez tous du principe que j'ai les sources, c'est émouvant.


 
Si tu n'as pas les sources, alors tu ne peux pas être sur que cette fonction n'a pas d'effets de bords indésirables.


---------------
last.fm
n°1979129
Elmoricq
Modérateur
Posté le 30-03-2010 à 18:00:16  profilanswer
 

snafu8 a écrit :

Vous partez tous du principe que j'ai les sources, c'est émouvant.

 

[:ddr555]


Message édité par Elmoricq le 30-03-2010 à 18:00:27
n°1979134
Un Program​meur
Posté le 30-03-2010 à 18:04:49  profilanswer
 

snafu8 a écrit :

Vous partez tous du principe que j'ai les sources, c'est émouvant.


 
Non.  "Tu modifies Maman" étais un raccourci pour "tu introduis une demande de modification de Maman en bonne et due forme suivant le process employé pour ce faire dans le cas de la bibliothèque contenant Maman."  Si ce process consiste a sacrifier des chèvres suivant un rite vaudou, tu trouves des chèvres blanches et tu les amènes au sorcier compétant.  


---------------
The truth is rarely pure and never simple (Oscar Wilde)
n°1979135
snafu8
Posté le 30-03-2010 à 18:08:51  profilanswer
 

Citation :

Si tu n'as pas les sources, alors tu ne peux pas être sur que cette fonction n'a pas d'effets de bords indésirables.


 
Je suis physicien à la base, donc pour moi, si tout se passe bien sur 5 exemples, alors tout se passera toujours bien.

n°1979138
Elmoricq
Modérateur
Posté le 30-03-2010 à 18:14:31  profilanswer
 

snafu8 a écrit :

Citation :

Si tu n'as pas les sources, alors tu ne peux pas être sur que cette fonction n'a pas d'effets de bords indésirables.


 
Je suis physicien à la base, donc pour moi, si tout se passe bien sur 5 exemples, alors tout se passera toujours bien.


 
Oh, en informatique, un seul exemple suffit. Si et seulement si il couvre tous les cas possibles. :o

n°1979160
Un Program​meur
Posté le 30-03-2010 à 19:21:43  profilanswer
 

snafu8 a écrit :

Citation :

Si tu n'as pas les sources, alors tu ne peux pas être sur que cette fonction n'a pas d'effets de bords indésirables.


 
Je suis physicien à la base, donc pour moi, si tout se passe bien sur 5 exemples, alors tout se passera toujours bien.


 
La loi de Murphy n'est pas valide pour les physiciens?


---------------
The truth is rarely pure and never simple (Oscar Wilde)

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

  tranformer une fonction private en public

 

Sujets relatifs
Fonction globale: symbole externe non résoluFonction et Type + Livre VBA
Problème fonction javascriptFonction mail() - reception impossible sur une adresse
[Résolu] referencer des instances creees par une fonction...Redirection de mail en fonction du contenu
Redirection de mail en fonction du contenuFichiers a rendre public ou prive sur site web genre .htaccess
Appeler une procédure depuis une fonction !Fonction "copier/coller des champs" dans un formulaire
Plus de sujets relatifs à : tranformer une fonction private en public


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR