Portée

La portée d'une variable définit dans quelle partie du source la variable est accessible. De plus, elle précise où a été déclaré cette variable quand on utilise une variable qui a été définie dans un autre programme. Les 3 portées possibles sont :

Heritee

Cette portée n'a un sens que pour les variables d'un objet dérivant d'un modèle d'objet. La variable doit être définie complètement dans le modèle d'objet ( avec format et valeur initiale éventuels ). Ensuite on peut réutiliser cette variable dans le nouvel objet en précisant par Heritee que cette variable a été déclarée dans le modèle d'objet.

Exemple :

Dans le modèle d'objet on définit :

VARIABLES :
   Chaine code_societe("Code de la société",8)
   Entier nb_employes( "Nombre d'employés","####" )=0

 Dans l'objet dérivé on définit :

VARIABLES :
   Chaine Heritee code_societe
   Entier Heritee nb_employes

Publique et Externe

La définition de portée Publique ou Externe n'a une signification que pour les variables globales.

 

  • Publique : La donnée a une place mémoire qui lui est réservée, et elle est publique : elle sera accessible à tous les objets du même domaine, du même source ou non. Les variables publiques doivent être réservées aux informations réellement partagées, sinon le fonctionnement multi-sessions ne sera pas correct.

  • Externe : C'est le complément des variables publiques : la donnée a une place en mémoire qui lui est réservée mais elle est définie dans un autre source du même domaine. Il n'y a pas de nouvelle allocation mémoire. Pour être déclarée Externe, une variable doit avoir été définie comme variable Publique dans un autre source ).

 

Il faut toujours veiller à ce que la définition d'une variable en tant que Publique d'un côté et Externe de l'autre soit strictement identique dans les deux cas.

 

Pour toutes les variables dont la portée n'est pas définie, la visibilité de la variable est locale à l'endroit où celle-ci est déclarée :

  • Une variable globale est accessible dans tout le source.

  • Une variable locale à un objet est accessible seulement dans cette objet.

  • Une variable locale à une méthode est accessible seulement dans cette méthode.

  • Une variable locale à un bloc d'instruction est accessible seulement à l'intérieur de ce bloc.
    Les blocs d'instructions conditionnelles sont définis par les structures de contrôles suivantes : Si SinonSi Sinon Finsi, TantQue, Pour FinPour