Variabili statiche e scope

di il
5 risposte

Variabili statiche e scope

Salve a tutti, gentilmente mi potreste spiegare il perché quando abbiamo variabili statiche nelle classi, per richiamarle all'esterno bisogna usare lo scope(":").

5 Risposte

  • Re: Variabili statiche e scope

    Ciao dna_programmer
    in quasta classe:
    
    // file .h
    class MyClass
    {
    public:
    	int a;
    	static int b;
    };
    
    // file .cpp
    int MyClass::b;
    
    Ci sono due variabili, 'a' è chiamata di istanza e 'b' di classe.

    Le variabili di istanza possono avere un valore diverso per ogni istanza della classe e vi si accede col '.' dopo il nome dell' istanza.
    
    MyClass p;
    p.a = 5;
    
    Le variabili di classe (quelle dichiarare con static) invece sono uniche per tutte le istanze della classe (è un po come se fosse una variabile globale) e non è necessario specificare una istanza per modificarle, ad es:
    
    MyClass::b = 9;
    
    Dopo questa istruzione tutte le istanze di MyClass avranno b = 9.
  • Re: Variabili statiche e scope

    Ciao, quindi le variabili statiche hanno lo stesso valore per ogni oggetto dello stesso tipo, giusto?
    Quindi ritornando al vecchio discorso dello scope, riassumendo si usa con le enumerazioni, per i namespace e quando le variabili sono statiche, ho capito bene??
  • Re: Variabili statiche e scope

    Si, hai capito giusto, inoltre c' è un altro caso in cui si usa '::', prova a guardare l' ultimo esempio che ti avevo fatto nel thread dello scope (era l' esempio con le classi derivate).
  • Re: Variabili statiche e scope

    A ok quindi riassumendo lo scope si usa:

    1) per i namespace
    2)quando in una classe derivata dobbiamo richiamata un metodo che è presente sia nella classe base che in quella derivata
    3) Per le enumerazioni
    4)per le variabili statiche
    Giusto?
  • Re: Variabili statiche e scope

    OK
Devi accedere o registrarti per scrivere nel forum
5 risposte