English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
È possibile definire i membri statici della classe in C ++ utilizzando la parola chiave static. Viene memorizzata solo una copia dei membri statici della classe indipendentemente dal numero di oggetti della classe. Pertanto, i membri statici vengono condivisi da tutti gli oggetti della classe.
Se non viene inizializzato in alcun altro modo il primo oggetto della classe, il membro statico della classe viene inizializzato a zero quando viene creato il primo oggetto della classe.
Ecco un programma che dimostra la definizione di un membro statico della classe:
#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 << "Il punto è (" << 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 << "\nIl numero di oggetti è: " << Point::count; return 0; };
Ecco l'output del programma sopra
Il punto è (10,5) Il punto è (7,9) Il punto è (1,2) Il numero di oggetti è: 3
Ora scopriamo il programma sopra
La classe Point ha 2 membri dati che compongono un punto, x e y. C'è anche un membro statico contatore, utilizzato per monitorare il numero di oggetti creati dalla classe Point. CostruttorePoint()
Inizializza i valori di x e y, poi la funzionedisplay();
Visualizza i loro valori. Ecco il segmento di codice per visualizzare questo:
class Point{ int x; int y; public: static int count; Point(int x1, int y1){ x = x1; y = y1; count++; }; void display(){ cout << "Il punto è (" << x << "," << y << ")\n"; }; };
All'interno di questa funzionemain();
Hanno creato 3 oggetti della classe Point. Poi chiamano la funzione per visualizzare i valori di questi oggettidisplay();
Poi visualizza il contatore. Ecco il segmento di codice per visualizzare questo:
Point p1(10,5); Point p2(7,9); Point p3(1,2); p1.display(); p2.display(); p3.display(); cout << "\nIl numero di oggetti è: " << Point::count;