Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Membri Statici della Classe | Fondamenti della OOP in C++
OOP in C++
course content

Contenuti del Corso

OOP in C++

OOP in C++

1. Fondamenti della OOP in C++
2. Costruttori e Distruttori
3. Panoramica sull'Incapsulamento
4. Panoramica sull'Ereditarietà
5. Panoramica sul Polimorfismo

book
Membri Statici della Classe

Nella programmazione orientata agli oggetti, la parola chiave static assume un significato particolare, modificando il comportamento di attributi e metodi. Esistono situazioni in cui è necessario che alcuni dati siano condivisi tra tutti gli oggetti di una classe invece di essere replicati per ogni istanza. In questi casi entrano in gioco i membri dati statici.

Sintassi dei membri statici

La creazione di un membro statico di una classe è semplice. È sufficiente anteporre la dichiarazione con la parola chiave static.

Example.h

Example.h

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

Nell'esempio sopra, static_attribute e static_method() sono dichiarati come membri dati statici della class Example. A differenza dei membri dati regolari, i membri dati statici sono associati alla classe stessa piuttosto che ai singoli oggetti. Questo significa che tutte le istanze di Example condividono gli stessi membri statici.

L'inizializzazione è fondamentale per i membri dati statici e deve essere effettuata al di fuori della classe, a meno che il membro non utilizzi anche la parola chiave 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;

Vantaggi dell'utilizzo dei membri statici

L'uso dei membri dati statici e delle funzioni membro statiche offre diversi vantaggi.

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

Quale delle seguenti affermazioni sulle variabili membro statiche è vera?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 1. Capitolo 6

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

course content

Contenuti del Corso

OOP in C++

OOP in C++

1. Fondamenti della OOP in C++
2. Costruttori e Distruttori
3. Panoramica sull'Incapsulamento
4. Panoramica sull'Ereditarietà
5. Panoramica sul Polimorfismo

book
Membri Statici della Classe

Nella programmazione orientata agli oggetti, la parola chiave static assume un significato particolare, modificando il comportamento di attributi e metodi. Esistono situazioni in cui è necessario che alcuni dati siano condivisi tra tutti gli oggetti di una classe invece di essere replicati per ogni istanza. In questi casi entrano in gioco i membri dati statici.

Sintassi dei membri statici

La creazione di un membro statico di una classe è semplice. È sufficiente anteporre la dichiarazione con la parola chiave static.

Example.h

Example.h

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

Nell'esempio sopra, static_attribute e static_method() sono dichiarati come membri dati statici della class Example. A differenza dei membri dati regolari, i membri dati statici sono associati alla classe stessa piuttosto che ai singoli oggetti. Questo significa che tutte le istanze di Example condividono gli stessi membri statici.

L'inizializzazione è fondamentale per i membri dati statici e deve essere effettuata al di fuori della classe, a meno che il membro non utilizzi anche la parola chiave 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;

Vantaggi dell'utilizzo dei membri statici

L'uso dei membri dati statici e delle funzioni membro statiche offre diversi vantaggi.

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

Quale delle seguenti affermazioni sulle variabili membro statiche è vera?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 1. Capitolo 6
some-alt