miembro de datos estáticos en C ++ con el Ejemplo

Aprender: ¿Cuál es miembro de datos static en C ++ programación ? ¿Cómo declarar, definir miembros de datos static y cómo acceder a, sin que los miembros funcionan en C ++?

Cuando declaramos una variable normal (miembro de datos) en una clase, diferentes copias de los miembros de datos crean con los objetos asociados.

En algunos casos cuando necesitamos un miembro de datos común que debe ser el mismo para todos los objetos, no podemos do esto utilizando miembros de datos normales. Para cumplir estos casos, es necesario static miembros de datos.

En este post, vamos a aprender acerca de los static miembros de datos y las funciones miembro static, cómo se declaran, cómo acceden con y sin funciones miembro?

C ++ static miembro de datos

Es una variable que se declara con el static de palabras clave, que también se conoce como miembro de la clase, por lo que sólo una sola copia de la variable crea para todos los objetos .

Cualquier cambio en el miembro de datos static a través de una función miembro reflejarán en funciones miembro de todos los demás objetos.

Declaración

static data_type member_name;

Definir el miembro de datos static
Se debe definir fuera de la clase siguiendo esta sintaxis:

data_type class_name :: member_name =value;

If está llamando a un miembro de datos static dentro de una función miembro, función miembro debe ser declarado como static (es decir, una función miembro static puede acceder a los miembros de datos static)

Considere el ejemplo, aquí static miembro de datos está accediendo a través de la función miembro static:

#include <iostream>
using namespace std;
class Demo
{
private:
static int X;
public:
static void fun()
{
cout <<"Value of X: " << X << endl;
}
};
//defining
int Demo :: X =10;
int main()
{
Demo X;
X.fun();
return 0;
}

salida

Value of X: 10

miembro de datos acceso a static sin función miembro static

un miembro de datos static también se puede acceder a través del nombre de la clase sin necesidad de utilizar la función miembro static (ya que es un miembro de la clase), aquí necesitamos una alcance del operador de resolución (SRO) :: para acceder al miembro de datos sin static función miembro static.

Sintaxis:

class_name :: static_data_member;

Considere el ejemplo:

#include <iostream>
using namespace std;
class Demo
{
public:
static int ABC;
};
//defining
int Demo :: ABC =10;
int main()
{
cout<<"nValue of ABC: "<<Demo::ABC;
return 0;
}

salida

Value of ABC: 10

En programa anterior ABC es un miembro de la clase (miembro de datos static), se puede directamente el acceso con ayuda en el operador de resolución de alcance.

Nota: El miembro de datos const de clase es static por default.


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *