CLASES STATIC EN C
Ejemplo:
# include <iostream.h>
class Ejemplo {
int ejemplo1;
static int ejemplo2;
public:
Ejemplo (void);
void print(void);
};
int Ejemplo :: ejemplo2;
Ejemplo :: Ejemplo (void) {
ejemplo1 = 1;
ejemplo2 = 1;
}
void Ejemplo :: print (void) {
ejemplo1++;
ejemplo2++;
cout << 'ejemplo1 = ' << ejemplo1 << '\n';
cout << 'ejemplo2 = ' << ejemplo2 << '\n'; ;
}
main() {
Ejemplo primero, segundo;
primero.print();
segundo.print();
}
La salida de este programa es:
ejemplo1 = 2
ejemplo2 = 2
ejemplo1 = 2
ejemplo2 = 3
Una variable declarada static (ejemplo2) es una variable externa y solo puede existir una copia de esa variable. Todos los objetos de esta clase (en este caso, primero y segundo) comparten una misma copia de esta variable, que es global a estos objetos.
En la definicion de clase, la variable solo es declarada. La declaracion dice que la variable existira y le da un nombre, pero la definicion es la que realmente define un lugar para guardarla en la memoria del ordenador. Por definicion, una variable puede ser declarada en la cabecera del fichero, pero no definida alli, sino fuera de ella, normalmente en el fichero de implementacion.
El constructor inicializa las dos variables internas a 1 cada vez que se crea un objeto. Para mostrar que ejemplo2 es compartida por todos los objetos de esta clase, definimos una funcion, print, que incrementa el valor de las variables internas y a continuacion las imprime.
Anterior:
clases array de objetos
Siguiente:
clases puntero interno
apuntes lenguaje c:
· Algunos conceptos· Tipos en el lenguaje c
· Variables y constantes en c
· Operadores en el lenguaje c
· Entrada/salida en c
· Estructuras de control en c
· Arrays y punteros en c
· Reserva dinamica de memoria en c
· Funciones en lenguaje c
· Estructuras en lenguaje c
· Clases
· Clases y encapsulacion en c
· Clases constructores y desctructores en c
· Descomposicion en modulos en c
· Array de objetos en c
· Clases static en c
· Un objeto con un puntero interno
· Punteros a clases en c
· Objetos encadenados en c
· Sobrecarga de operadores en c
IMPORTANTE:
- Si te ha gustado esta pagina, por favor, votanos aqui:- Si no te ha gustado, escribenos y cuentanos en que mejorar.

apuntes