English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Se puede definir un miembro estático de C ++miembros estáticos de la clase. En la memoria hay solo una copia de los miembros estáticos de la clase, independientemente del número de objetos de la clase. Por lo tanto, los miembros estáticos se comparten por todos los objetos de la clase.
Si no se inicializa el primer objeto de la clase de alguna otra manera, el miembro estático de la clase se inicializa a cero cuando se crea el primer objeto de la clase.
El programa siguiente muestra cómo definir un miembro estático de la clase:
#include <iostream> using namespace std; class Point{ int x; int y; public: static int count; Point(int x1, int y1{ x = x1; y = y1; count++; } void display(){ cout << "The point is (" << x << "," << y << ")\n"; } }; int Point::count = 0; int main(void){ Point p1(10,5); Point p2(7,9); Point p3(1,2); p1.display(); p2.display(); p3.display(); cout << "\nThe number of objects are: " << Point::count; return 0; }
La salida del programa anterior es como sigue-
The point is (10,5) The point is (7,9) The point is (1,2) The number of objects are: 3
Ahora vamos a entender el programa anterior.
La clase Point tiene2los miembros de datos que constituyen un punto x e y. Además, hay un miembro estático de cuenta, que se utiliza para monitorear el número de objetos creados por la clase Point. El constructorPoint()
Inicializa los valores de x e y, luego la funcióndisplay()
Muestra sus valores. El código de muestra es el siguiente-
class Point{ int x; int y; public: static int count; Point(int x1, int y1{ x = x1; y = y1; count++; } void display(){ cout << "The point is (" << x << "," << y << ")\n"; } };
En esta funciónmain()
, creó3Objetos de la clase Point. Luego llama a la función para mostrar los valores de estos objetosdisplay()
Luego muestra el valor de cuenta. El código de muestra es el siguiente-
Point p1(10,5); Point p2(7,9); Point p3(1,2); p1.display(); p2.display(); p3.display(); cout << "\nThe number of objects are: " << Point::count;