Le variabili di tipo static e global hanno senso quando definisci un oggetto di tipo Dato Astratto (non un ADT).
Per capirci, la differenza tra DA ed ADT è che del secondo puoi crearne infinite istanze, mentre del primo ve n'è uno ed uno solo. Il Dato Astratto consente ai client di interfacciarsi con esso tramite apposite funzioni ed una o piu variabili globali, dette appunto variabili di interfaccia.
Il dato astratto di per se (e tutti i suoi attributi) è definito come static nel modulo, in modo da prevenirne l'accesso diretto ai client (l'accesso puo avvenire solo tramite le variabili di interfaccia e le funzioni di interfaccia).
In linea generale è cattiva norma avere variabili globali perchè non solo te le ritrovi dall'inizio alla fine, ma anche perche chiunque puo accedervi e modificarne il contenuto. Il primo problema, in realta, con la tecnologia moderna non è piu un problema, vista la RAM presente sulle macchine.

Rispondi quotando