j'ai une classe A qui contient des membres et des méthodes.
soit A:meth1, A:meth2 et A:meth3 les méthodes de A
Et A:champ1 et A:champ2 deux membres 'PROTÉGÉ' de A (correspondant a des
détails d'implémentation masqué à l'utilisateur de la classe mais utile
au développement des classes qui hériterons de A)
La classe A dispose aussi d'une méthode A:copie qui permet de faire une
copie.
Donc j'ai le code suivant :
aa est un A dynamique
ab est un A dynamique
aa=allouer un A
aa:meth1()
ab:copie(aa)
...
Bien tout va bien jusque la.
J'ai ensuite une classe B qui hérite de A.
Pour des raisons d'implémentation, dans la classe B je surcharge la
méthode copie venant de A
soit le code suivant :
PROCEDURE VIRTUELLE copie ( elt est un objet B dynamique )
:champ1=elt:champ1
:champ2=elt:champ2
...
mon problème est le message d'erreur suivant :
Erreur :Le membre 'champ1' de la classe 'A' est protégé; il n'est pas
accessible hors des méthodes de la classe 'A' ou des classes dérivées de
'A'.
Il n'accepte pas mon code !!!
Comment puis-je résoudre le problème sans rendre les champs de A 'public'
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
patrice
d'apres l'aide, la lecture est autorisé et l'écriture est interdite donc faudrait faire des fonctions SetXXX public pour chaque élément à écrire
SetChamp1(elt:champ1) SetChamp2(elt:champ1)
"Daireaux Jean-Baptiste" a écrit dans le message de news:47a738fa$0$852$
Bonjour,
j'ai un petit problème de conception objet.
j'ai une classe A qui contient des membres et des méthodes.
soit A:meth1, A:meth2 et A:meth3 les méthodes de A Et A:champ1 et A:champ2 deux membres 'PROTÉGÉ' de A (correspondant a des détails d'implémentation masqué à l'utilisateur de la classe mais utile au développement des classes qui hériterons de A)
La classe A dispose aussi d'une méthode A:copie qui permet de faire une copie.
Donc j'ai le code suivant :
aa est un A dynamique ab est un A dynamique
aa=allouer un A aa:meth1()
ab:copie(aa)
...
Bien tout va bien jusque la.
J'ai ensuite une classe B qui hérite de A. Pour des raisons d'implémentation, dans la classe B je surcharge la méthode copie venant de A
soit le code suivant :
PROCEDURE VIRTUELLE copie ( elt est un objet B dynamique )
:champ1=elt:champ1 :champ2=elt:champ2 ...
mon problème est le message d'erreur suivant :
Erreur :Le membre 'champ1' de la classe 'A' est protégé; il n'est pas accessible hors des méthodes de la classe 'A' ou des classes dérivées de 'A'.
Il n'accepte pas mon code !!!
Comment puis-je résoudre le problème sans rendre les champs de A 'public'
Merci.
d'apres l'aide, la lecture est autorisé et l'écriture est interdite
donc faudrait faire des fonctions SetXXX public pour chaque élément à écrire
SetChamp1(elt:champ1)
SetChamp2(elt:champ1)
"Daireaux Jean-Baptiste" <jbNOSPAMdaireauxnospam@llexellNOSPAM.fr> a écrit
dans le message de news:47a738fa$0$852$ba4acef3@news.orange.fr...
Bonjour,
j'ai un petit problème de conception objet.
j'ai une classe A qui contient des membres et des méthodes.
soit A:meth1, A:meth2 et A:meth3 les méthodes de A
Et A:champ1 et A:champ2 deux membres 'PROTÉGÉ' de A (correspondant a des
détails d'implémentation masqué à l'utilisateur de la classe mais utile
au développement des classes qui hériterons de A)
La classe A dispose aussi d'une méthode A:copie qui permet de faire une
copie.
Donc j'ai le code suivant :
aa est un A dynamique
ab est un A dynamique
aa=allouer un A
aa:meth1()
ab:copie(aa)
...
Bien tout va bien jusque la.
J'ai ensuite une classe B qui hérite de A.
Pour des raisons d'implémentation, dans la classe B je surcharge la
méthode copie venant de A
soit le code suivant :
PROCEDURE VIRTUELLE copie ( elt est un objet B dynamique )
:champ1=elt:champ1
:champ2=elt:champ2
...
mon problème est le message d'erreur suivant :
Erreur :Le membre 'champ1' de la classe 'A' est protégé; il n'est pas
accessible hors des méthodes de la classe 'A' ou des classes dérivées de
'A'.
Il n'accepte pas mon code !!!
Comment puis-je résoudre le problème sans rendre les champs de A 'public'
d'apres l'aide, la lecture est autorisé et l'écriture est interdite donc faudrait faire des fonctions SetXXX public pour chaque élément à écrire
SetChamp1(elt:champ1) SetChamp2(elt:champ1)
"Daireaux Jean-Baptiste" a écrit dans le message de news:47a738fa$0$852$
Bonjour,
j'ai un petit problème de conception objet.
j'ai une classe A qui contient des membres et des méthodes.
soit A:meth1, A:meth2 et A:meth3 les méthodes de A Et A:champ1 et A:champ2 deux membres 'PROTÉGÉ' de A (correspondant a des détails d'implémentation masqué à l'utilisateur de la classe mais utile au développement des classes qui hériterons de A)
La classe A dispose aussi d'une méthode A:copie qui permet de faire une copie.
Donc j'ai le code suivant :
aa est un A dynamique ab est un A dynamique
aa=allouer un A aa:meth1()
ab:copie(aa)
...
Bien tout va bien jusque la.
J'ai ensuite une classe B qui hérite de A. Pour des raisons d'implémentation, dans la classe B je surcharge la méthode copie venant de A
soit le code suivant :
PROCEDURE VIRTUELLE copie ( elt est un objet B dynamique )
:champ1=elt:champ1 :champ2=elt:champ2 ...
mon problème est le message d'erreur suivant :
Erreur :Le membre 'champ1' de la classe 'A' est protégé; il n'est pas accessible hors des méthodes de la classe 'A' ou des classes dérivées de 'A'.
Il n'accepte pas mon code !!!
Comment puis-je résoudre le problème sans rendre les champs de A 'public'
Merci.
Daireaux Jean-Baptiste
Ps: j'ai remis le message en ordre...
"Daireaux Jean-Baptiste" a écrit dans le message de news:47a738fa$0$852$
Bonjour,
j'ai un petit problème de conception objet.
j'ai une classe A qui contient des membres et des méthodes.
soit A:meth1, A:meth2 et A:meth3 les méthodes de A Et A:champ1 et A:champ2 deux membres 'PROTÉGÉ' de A (correspondant a des détails d'implémentation masqué à l'utilisateur de la classe mais utile au développement des classes qui hériterons de A)
La classe A dispose aussi d'une méthode A:copie qui permet de faire une copie.
Donc j'ai le code suivant :
aa est un A dynamique ab est un A dynamique
aa=allouer un A aa:meth1()
ab:copie(aa)
...
Bien tout va bien jusque la.
J'ai ensuite une classe B qui hérite de A. Pour des raisons d'implémentation, dans la classe B je surcharge la méthode copie venant de A
soit le code suivant :
PROCEDURE VIRTUELLE copie ( elt est un objet B dynamique )
:champ1=elt:champ1 :champ2=elt:champ2 ...
mon problème est le message d'erreur suivant :
Erreur :Le membre 'champ1' de la classe 'A' est protégé; il n'est pas accessible hors des méthodes de la classe 'A' ou des classes dérivées de 'A'.
Il n'accepte pas mon code !!!
Comment puis-je résoudre le problème sans rendre les champs de A 'public'
Merci.
patrice a écrit : > d'apres l'aide, la lecture est autorisé et l'écriture est interdite > donc faudrait faire des fonctions SetXXX public pour chaque élément à > écrire > > SetChamp1(elt:champ1) > SetChamp2(elt:champ1) > > >
Bonjour,
Je n'écrit pas dans elt:champ, Je le lis. Et comme vous l'indiquez, je devrai pouvoir le faire non ?
de plus la méthode copie de la classe A écrite comme ceci :
PROCEDURE VIRTUELLE copie ( elt est un objet A dynamique )
:champ1=elt:champ1 :champ2=elt:champ2 ...
fonctionne parfaitement.
Je site aussi la documentation :
<Accès> : Optionnel
Permet de restreindre l'accès à ce membre de la classe. 3 niveaux sont disponibles : - Privé : accès autorisé depuis un code de la classe - Protégé : accès autorisé depuis un code de la classe ou un code d'une classe dérivée (et "héritée") - Public (par défaut) : accès autorisé depuis n'importe quel code de la classe ou du projet.
--fin citation
merci quand même. J.B.D.
Ps: j'ai remis le message en ordre...
"Daireaux Jean-Baptiste" <jbNOSPAMdaireauxnospam@llexellNOSPAM.fr> a écrit
dans le message de news:47a738fa$0$852$ba4acef3@news.orange.fr...
Bonjour,
j'ai un petit problème de conception objet.
j'ai une classe A qui contient des membres et des méthodes.
soit A:meth1, A:meth2 et A:meth3 les méthodes de A
Et A:champ1 et A:champ2 deux membres 'PROTÉGÉ' de A (correspondant a des
détails d'implémentation masqué à l'utilisateur de la classe mais utile
au développement des classes qui hériterons de A)
La classe A dispose aussi d'une méthode A:copie qui permet de faire une
copie.
Donc j'ai le code suivant :
aa est un A dynamique
ab est un A dynamique
aa=allouer un A
aa:meth1()
ab:copie(aa)
...
Bien tout va bien jusque la.
J'ai ensuite une classe B qui hérite de A.
Pour des raisons d'implémentation, dans la classe B je surcharge la
méthode copie venant de A
soit le code suivant :
PROCEDURE VIRTUELLE copie ( elt est un objet B dynamique )
:champ1=elt:champ1
:champ2=elt:champ2
...
mon problème est le message d'erreur suivant :
Erreur :Le membre 'champ1' de la classe 'A' est protégé; il n'est pas
accessible hors des méthodes de la classe 'A' ou des classes dérivées de
'A'.
Il n'accepte pas mon code !!!
Comment puis-je résoudre le problème sans rendre les champs de A 'public'
Merci.
patrice a écrit :
> d'apres l'aide, la lecture est autorisé et l'écriture est interdite
> donc faudrait faire des fonctions SetXXX public pour chaque élément à
> écrire
>
> SetChamp1(elt:champ1)
> SetChamp2(elt:champ1)
>
>
>
Bonjour,
Je n'écrit pas dans elt:champ, Je le lis.
Et comme vous l'indiquez, je devrai pouvoir le faire non ?
de plus la méthode copie de la classe A écrite comme ceci :
PROCEDURE VIRTUELLE copie ( elt est un objet A dynamique )
:champ1=elt:champ1
:champ2=elt:champ2
...
fonctionne parfaitement.
Je site aussi la documentation :
<Accès> : Optionnel
Permet de restreindre l'accès à ce membre de la classe. 3 niveaux sont
disponibles :
- Privé : accès autorisé depuis un code de la classe
- Protégé : accès autorisé depuis un code de la classe ou un code d'une
classe dérivée (et "héritée")
- Public (par défaut) : accès autorisé depuis n'importe quel code de la
classe ou du projet.
"Daireaux Jean-Baptiste" a écrit dans le message de news:47a738fa$0$852$
Bonjour,
j'ai un petit problème de conception objet.
j'ai une classe A qui contient des membres et des méthodes.
soit A:meth1, A:meth2 et A:meth3 les méthodes de A Et A:champ1 et A:champ2 deux membres 'PROTÉGÉ' de A (correspondant a des détails d'implémentation masqué à l'utilisateur de la classe mais utile au développement des classes qui hériterons de A)
La classe A dispose aussi d'une méthode A:copie qui permet de faire une copie.
Donc j'ai le code suivant :
aa est un A dynamique ab est un A dynamique
aa=allouer un A aa:meth1()
ab:copie(aa)
...
Bien tout va bien jusque la.
J'ai ensuite une classe B qui hérite de A. Pour des raisons d'implémentation, dans la classe B je surcharge la méthode copie venant de A
soit le code suivant :
PROCEDURE VIRTUELLE copie ( elt est un objet B dynamique )
:champ1=elt:champ1 :champ2=elt:champ2 ...
mon problème est le message d'erreur suivant :
Erreur :Le membre 'champ1' de la classe 'A' est protégé; il n'est pas accessible hors des méthodes de la classe 'A' ou des classes dérivées de 'A'.
Il n'accepte pas mon code !!!
Comment puis-je résoudre le problème sans rendre les champs de A 'public'
Merci.
patrice a écrit : > d'apres l'aide, la lecture est autorisé et l'écriture est interdite > donc faudrait faire des fonctions SetXXX public pour chaque élément à > écrire > > SetChamp1(elt:champ1) > SetChamp2(elt:champ1) > > >
Bonjour,
Je n'écrit pas dans elt:champ, Je le lis. Et comme vous l'indiquez, je devrai pouvoir le faire non ?
de plus la méthode copie de la classe A écrite comme ceci :
PROCEDURE VIRTUELLE copie ( elt est un objet A dynamique )
:champ1=elt:champ1 :champ2=elt:champ2 ...
fonctionne parfaitement.
Je site aussi la documentation :
<Accès> : Optionnel
Permet de restreindre l'accès à ce membre de la classe. 3 niveaux sont disponibles : - Privé : accès autorisé depuis un code de la classe - Protégé : accès autorisé depuis un code de la classe ou un code d'une classe dérivée (et "héritée") - Public (par défaut) : accès autorisé depuis n'importe quel code de la classe ou du projet.
--fin citation
merci quand même. J.B.D.
Romain PETIT
Il se trouve que patrice a formulé :
d'apres l'aide, la lecture est autorisé et l'écriture est interdite
Non, ses membres sont "protégés" (accès autorisé depuis un code de la classe ou un code d'une classe dérivée)
Ne type pas les arguments de ta méthode dérivée, ça devrait marcher :
// méthode de la classe B PROCEDURE VIRTUELLE copie ( elt) :champ1=elt:champ1 :champ2=elt:champ2 ...
A+
-- Romain PETIT http://cerbermail.com/?O16kfXOFcq (cliquez sur le lien ci-dessus pour me contacter en privé)
Il se trouve que patrice a formulé :
d'apres l'aide, la lecture est autorisé et l'écriture est interdite
Non, ses membres sont "protégés" (accès autorisé depuis un code de la
classe ou un code d'une classe dérivée)
Ne type pas les arguments de ta méthode dérivée, ça devrait marcher :
// méthode de la classe B
PROCEDURE VIRTUELLE copie ( elt)
:champ1=elt:champ1
:champ2=elt:champ2
...
A+
--
Romain PETIT
http://cerbermail.com/?O16kfXOFcq
(cliquez sur le lien ci-dessus pour me contacter en privé)