Latest web development tutorials

C ++ Classe di stoccaggio

Classe di stoccaggio definisce un C ++ variabili di programma / insieme di funzioni (visibilità) e ciclo di vita. Questi progettisti posizionati prima di modificare il tipo. Qui di seguito sono programmi di stoccaggio classe C ++ sono disponibili:

  • auto
  • registro
  • statica
  • extern
  • mutevole

classe di memorizzazione automatica

classe di memorizzazioneautomatica è tutto locale classe variabili di archiviazione predefinito.

{
   int mount;
   auto int month;
}

L'esempio precedente definisce due variabili con la stessa classe di memorizzazione, auto possono essere utilizzate solo all'interno di una funzione, cioè automatica modifica solo la variabile locale.

classe di memorizzazione register

registrare classe di memoria viene utilizzato per definire memorizzati nei registri invece di RAM nelle variabili locali.Ciò significa che la dimensione massima della variabile è uguale alla dimensione del registro (di solito una parola), e non può essere applicata ad esso operatore unario '&' (perché non ha posizione di memoria).

{
   register int  miles;
}

Hai bisogno di registrarsi solo per un rapido accesso a variabili, quali la lotta. Va inoltre osservato che la definizione di 'registro' non significa che variabile sarà memorizzato in un registro, significa che la variabile può essere memorizzato in un registro, a seconda delle limitazioni di hardware e di attuazione.

classe di memorizzazione static

classe di memorizzazionestatic indica al compilatore di mantenere l'esistenza di variabili locali nel ciclo di vita del programma, senza la necessità di inserire ogni volta che si va fuori del campo di applicazione e di essere creato e distrutto.Pertanto, l'uso di variabili locali statiche può essere modificato per mantenere il valore delle variabili locali tra chiamate di funzione.

modificatore statico può essere applicato a variabili globali. Quando la variabile globale statica modificata, la variabile sarà limitare la portata della dichiarazione nei suoi archivi.

In C ++, quando utilizzato su membri di dati statici di classe, tutti gli oggetti si tradurrà in una sola copia della classe membri sono condivisi.

#include <iostream>
 
// 函数声明 
void func(void);
 
static int count = 10; /* 全局变量 */
 
int main()
{
    while(count--)
    {
       func();
    }
    return 0;
}
// 函数定义
void func( void )
{
    static int i = 5; // 局部静态变量
    i++;
    std::cout << "变量 i 为 " << i ;
    std::cout << " , 变量 count 为 " << count << std::endl;
}

Quando il codice di cui sopra è compilato ed eseguito, produce i seguenti risultati:

变量 i 为 6 , 变量 count 为 9
变量 i 为 7 , 变量 count 为 8
变量 i 为 8 , 变量 count 为 7
变量 i 为 9 , 变量 count 为 6
变量 i 为 10 , 变量 count 为 5
变量 i 为 11 , 变量 count 为 4
变量 i 为 12 , 变量 count 为 3
变量 i 为 13 , 变量 count 为 2
变量 i 为 14 , 变量 count 为 1
变量 i 为 15 , 变量 count 为 0

Classe di stoccaggio extern

classe di memorizzazioneextern viene utilizzata per fornire un riferimento a una variabile globale, la variabile globale per tutti i file di programma sono visibili.Quando si utilizza 'extern', che non può inizializzare una variabile, il nome della variabile punterà ad una posizione di archiviazione definita in precedenza.

Quando si dispone di più documenti e definisce una variabile globale o una funzione che può essere utilizzata in altri documenti, è possibile utilizzareexternin altri file per ottenere un riferimento variabile o una funzione definita. Si puòcapire,extern viene utilizzata per dichiarare una variabile globale o una funzione in un altro file.

modificatore extern viene generalmente utilizzato quando vi sono due o più file condividono le stesse variabili o funzioni del tempo globale, come segue:

Primo file: main.cpp

#include <iostream>
 
int count ;
extern void write_extern();
 
int main()
{
   count = 5;
   write_extern();
}

Il secondo file: support.cpp

#include <iostream>
 
extern int count;
 
void write_extern(void)
{
   std::cout << "Count is " << count << std::endl;
}

Qui, la seconda parola chiave del fileexternviene utilizzata per dichiarare il primo conteggio è stato definito nel file main.cpp nella. Ora, compilare entrambi i file, come segue:

$ g++ main.cpp support.cpp -o write

Questo generascrivere programma eseguibile tenta di eseguire scrittura,produrrà i seguenti risultati:

$ ./write
Count is 5

Classe di stoccaggio mutabile

specificatoremutabile si applica solo alle classi di oggetti, che saranno alla fine di questo tutorial per spiegare.Esso consente ai membri delle costanti oggetto sostitutivo. Cioè, membro mutevole può essere modificato da funzioni membro const.