Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Miembros Estáticos de la Clase | Fundamentos de la POO en C++
POO en C++
course content

Contenido del Curso

POO en C++

POO en C++

1. Fundamentos de la POO en C++
2. Constructores y Destructores
3. Visión General de la Encapsulación
4. Visión General de la Herencia
5. Visión General del Polimorfismo

book
Miembros Estáticos de la Clase

En la programación orientada a objetos, la palabra clave static tiene un significado especial, ya que modifica el comportamiento de los atributos y métodos. Existen situaciones en las que es necesario que ciertos datos sean compartidos entre todos los objetos de una clase en lugar de replicarse para cada instancia. Aquí es donde entran en juego los miembros de datos estáticos.

Sintaxis de los miembros estáticos

Crear un miembro estático de una clase es sencillo. Solo es necesario anteponer la declaración con la palabra clave static.

Example.h

Example.h

copy
12345
class Example { public: static int static_attibute; static void static_method() { std::cout << "Static method!" << std::endl; } };

En el ejemplo anterior, static_attribute y static_method() se declaran como miembros de datos estáticos de la class Example. A diferencia de los miembros de datos regulares, los miembros de datos estáticos están asociados con la clase en sí misma y no con los objetos individuales. Esto significa que todas las instancias de Example comparten los mismos miembros estáticos.

La inicialización es fundamental para los miembros de datos estáticos y debe realizarse fuera de la clase, a menos que el miembro también utilice la palabra clave const.

FirstExample.h

FirstExample.h

SecondExample.h

SecondExample.h

copy
1234567
class Example { public: static int static_attribute; static void static_method() { std::cout << "Static method!" << std::endl; } }; int Example::static_attribute = 0;

Beneficios de usar miembros estáticos

El uso de miembros de datos estáticos y funciones miembro estáticas ofrece varios beneficios.

main.cpp

main.cpp

copy
12345678910111213141516171819202122
#include <iostream> class Example { public: static int static_attribute; static void static_method() { std::cout << "Static method!" << std::endl; } }; // Initialization of the static member variable int Example::static_attribute = 0; int main() { Example obj1, obj2; obj1.static_attribute = 100; // Modifying static_attribute through obj1 std::cout << obj1.static_attribute << std::endl; std::cout << obj2.static_attribute << std::endl; Example::static_attribute = 25; // Modifying static_attribute through class Example::static_method(); // Calling the static method through class }
question mark

¿Cuál de las siguientes afirmaciones sobre las variables miembro estáticas es verdadera?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 1. Capítulo 6

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

course content

Contenido del Curso

POO en C++

POO en C++

1. Fundamentos de la POO en C++
2. Constructores y Destructores
3. Visión General de la Encapsulación
4. Visión General de la Herencia
5. Visión General del Polimorfismo

book
Miembros Estáticos de la Clase

En la programación orientada a objetos, la palabra clave static tiene un significado especial, ya que modifica el comportamiento de los atributos y métodos. Existen situaciones en las que es necesario que ciertos datos sean compartidos entre todos los objetos de una clase en lugar de replicarse para cada instancia. Aquí es donde entran en juego los miembros de datos estáticos.

Sintaxis de los miembros estáticos

Crear un miembro estático de una clase es sencillo. Solo es necesario anteponer la declaración con la palabra clave static.

Example.h

Example.h

copy
12345
class Example { public: static int static_attibute; static void static_method() { std::cout << "Static method!" << std::endl; } };

En el ejemplo anterior, static_attribute y static_method() se declaran como miembros de datos estáticos de la class Example. A diferencia de los miembros de datos regulares, los miembros de datos estáticos están asociados con la clase en sí misma y no con los objetos individuales. Esto significa que todas las instancias de Example comparten los mismos miembros estáticos.

La inicialización es fundamental para los miembros de datos estáticos y debe realizarse fuera de la clase, a menos que el miembro también utilice la palabra clave const.

FirstExample.h

FirstExample.h

SecondExample.h

SecondExample.h

copy
1234567
class Example { public: static int static_attribute; static void static_method() { std::cout << "Static method!" << std::endl; } }; int Example::static_attribute = 0;

Beneficios de usar miembros estáticos

El uso de miembros de datos estáticos y funciones miembro estáticas ofrece varios beneficios.

main.cpp

main.cpp

copy
12345678910111213141516171819202122
#include <iostream> class Example { public: static int static_attribute; static void static_method() { std::cout << "Static method!" << std::endl; } }; // Initialization of the static member variable int Example::static_attribute = 0; int main() { Example obj1, obj2; obj1.static_attribute = 100; // Modifying static_attribute through obj1 std::cout << obj1.static_attribute << std::endl; std::cout << obj2.static_attribute << std::endl; Example::static_attribute = 25; // Modifying static_attribute through class Example::static_method(); // Calling the static method through class }
question mark

¿Cuál de las siguientes afirmaciones sobre las variables miembro estáticas es verdadera?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 1. Capítulo 6
some-alt