Latest web development tutorials

clase de almacenamiento de C ++

Clase de almacenamiento define una C ++ las variables del programa / volumen de funciones (visibilidad) y el ciclo de la vida. Estos especificadores colocan antes de que modifican el tipo. A continuación se enumeran los programas de almacenamiento de clase C ++ están disponibles:

  • auto
  • registrar
  • estático
  • externo
  • mudable

clase de almacenamiento automático

clase de almacenamientoautomático es toda clase de variables de almacenamiento predeterminado local.

{
   int mount;
   auto int month;
}

El ejemplo anterior define dos variables con el mismo tipo de almacenamiento, auto sólo se pueden utilizar dentro de una función, a saber automático sólo modifica la variable local.

regístrese clase de almacenamiento

regístrese clase de almacenamiento se utiliza para definir almacenados en los registros en lugar de la memoria RAM en las variables locales.Esto significa que el tamaño máximo de la variable es igual al tamaño del registro (por lo general una palabra), y no puede ser aplicada a ella unario '&' operador (ya que no tiene posición de memoria).

{
   register int  miles;
}

Sólo hay que registrarse para acceder rápidamente a las variables, tales como contador. También hay que señalar que la definición de "registro" no significa que la variable se almacena en un registro, significa que la variable puede ser almacenada en un registro, en función de las limitaciones de hardware y la ejecución.

clase de almacenamiento estático

clase de almacenamientoestático indica al compilador para mantener la existencia de variables locales en el ciclo de vida del programa, sin necesidad de introducirla cada vez que vaya fuera de alcance y pueden crear y destruir.Por lo tanto, el uso de variables locales estáticas puede ser modificado para mantener el valor de las variables locales entre llamadas a funciones.

modificador static se puede aplicar a las variables globales. Cuando la variable global estática modificado, la variable limitar el alcance de la declaración en sus archivos.

En C ++, cuando se utiliza en los miembros de datos estáticos de clase, todos los objetos se traducirá en un solo ejemplar de la clase miembros son compartidos.

#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;
}

Cuando el código se compila y ejecuta, produce los siguientes resultados:

变量 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

clase de almacenamiento extern

clase de almacenamientoexterno se utiliza para proporcionar una referencia a una variable global, la variable global para todos los archivos de programa son visibles.Cuando se utiliza 'extern', que no puede inicializar una variable, el nombre de la variable se apuntan a una ubicación de almacenamiento previamente definido.

Cuando tiene varios documentos y definir una variable global o la función que se puede utilizar en otros documentos, puede utilizarexternen otros archivos para obtener una referencia variable o función definida. Se puedeentender,extern se utiliza para declarar una variable global o la función en otro archivo.

modificador externo se utiliza generalmente cuando hay dos o más archivos comparten las mismas variables o funciones del tiempo globales, de la siguiente manera:

Primer archivo: main.cpp

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

El segundo archivo: support.cpp

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

En este caso, la segunda palabra clave del archivoexternose utiliza para declarar que se ha definido en el archivo de main.cpp en el primer conteo. Ahora, compile ambos archivos, de la siguiente manera:

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

Esto generaescribir programa ejecutable intenta realizar escritura,producirá los siguientes resultados:

$ ./write
Count is 5

clase de almacenamiento mutable

especificadormutable se aplica sólo a las clases de objetos, que serán, al final de este tutorial para explicar.Permite que los miembros de las constantes objeto de sustitución. Es decir, miembro mutable se puede modificar por métodos constantes.