Bonjour,
Comment déclarer dans Windev, en POO, une constante en privée ?
J'ai essayé :
PRIVE CONSTANT MA_CONSTANTE
Mais ce n'est pas bon.
Merci bien.
Bonjour,
Comment déclarer dans Windev, en POO, une constante en privée ?
J'ai essayé :
PRIVE CONSTANT MA_CONSTANTE
Mais ce n'est pas bon.
Merci bien.
Bonjour,
Je viens de tester en 16:
Tatayo.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 PRIVE CONSTANT MA_CONSTANTE = 1
C'est ce que j'avais essayé mais ne voyant pas l'icône devant ma constant en rouge je pensais que cela ne fonctionnait pas.
Merci bien.
Cette syntaxe marche chez vous ??
Moi cela ne marche pas, les constantes sont automatiquement publique. (je suis en 17)
Si je tape <Nom de ma classe>. il me liste toutes les constantes de la classe.
Desolé de remonter ce sujet mais ce problème commence a devenir agaçant et je ne trouve aucune solution sur le net.
Suis-je le seul a avoir ce problème ?
Je détaille :
J'ai une classe MaClasse avec dans la déclaration :
dans une fenetre j'instancie un objet objMaClasse
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 PRIVE CONSTANT C1 = 1 PUBLIC CONSTANT C2 = 2
dans l'editeur de Code lorsque je tape
Code : Sélectionner tout - Visualiser dans une fenêtre à part objMaClasse est un MaClasse(param)
il me liste toutes les methodes et propriétés publiques de classe mais pas C1 ni C2objMaClasse .
lorsque je tape
il me liste toutes les methodes et propriétés publiques de classe mais aussi C1 et C2MaClasse .
Je n'y comprend rien..
Je viens de tester avec la 17:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 CnxBdd est une Classe PRIVÉ CONSTANT XY = 1 PROTÉGÉ m_nIdConnection est un entier m_sUtilisateur est une chaîne m_sMotDePasse est une chaîne m_sBaseDeDonnee est une chaîne m_sSource est une chaîne PROTÉGÉ GLOBAL m_tabLstConnexions est un tableau dynamique de CnxBdd dynamiques mg_nIdCourant est un entier FINWinDev me propose via la complétion Active (une méthode publique) et p_sSource (une propriété).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 gpclConnexion est un CnxBdd dynamique gpclconnexion.
Si je passe la constante en publique, j'ai la même chose !
Bref WinDev a du mal à gérer la porté des constantes dans les classes.
Maintenant j'ai pour habitude de déclarer les membres de mes classes protégés ou privé, et d'y accéder "de l'extérieur" via une propriété. J'aurai donc tendance à faire de même pour une constante.
Tatayo.
D'accord avec toi sur la difficulté a gérer la portée des constantes.
Et si tu tapes
?
Code : Sélectionner tout - Visualiser dans une fenêtre à part CnxBdd .
Peut-être que je me trompe mais il me paraîtrait logique que les constantes publiques soient accessibles en tapant <NomDeClasse>.<Constante>
Comme ca pas besoin d'instancier d'objet, les constantes sont directement accessibles. Cela ne marche-t'il pas comme ca dans d'autres langages ???
Avec le nom de la classe, la constante est accessible qu'elle soit publique ou privée.
Je n'avais pas essayé car je pensais que seules les membres globaux pouvaient être utilisés en dehors d'une instance.
Ca me conforte dans l'idée d'utiliser un membre global privé (ou protégé), et d'en donner l'accès via une propriété en lecture seule.
Tatayo.
Et c'était la même chose en 16 ??
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager