Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Membres Statiques de la Classe | Fondamentaux de la POO en C++
C++ Oop
course content

Contenu du cours

C++ Oop

C++ Oop

1. Fondamentaux de la POO en C++
2. Constructeurs et Destructeurs
3. Aperçu de l'Encapsulation
4. Aperçu de l'Héritage
5. Aperçu du Polymorphisme

book
Membres Statiques de la Classe

En programmation orientée objet, le mot-clé static revêt une signification particulière, modifiant le comportement des attributs et des méthodes. Il existe parfois des scénarios où nous avons besoin que certaines données soient partagées entre tous les objets d'une classe plutôt que d'être répliquées pour chaque instance. C'est là que les membres de données statiques entrent en jeu.

La syntaxe des membres statiques

Créer un membre statique d'une classe est simple. Il vous suffit de préfixer la déclaration avec le mot-clé static.

h

Example

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

Dans l'exemple ci-dessus, static_attibute et static_method() sont déclarés comme des membres de données statiques de la classe Example. Contrairement aux membres de données réguliers, les membres de données statiques sont associés à la classe elle-même plutôt qu'à des objets individuels. Cela signifie que toutes les instances de Example partagent les mêmes membres statiques.

Remarque

Pour accéder à un membre de données statique, nous utilisons l'opérateur de résolution de portée (::). Mais avant cela, nous devons l'initialiser.

L'initialisation est cruciale pour les membres de données statiques, et elle doit être effectuée en dehors de la classe à moins que le membre n'utilise également le mot-clé const.

h

FirstExample

h

SecondExample

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

Avantages de l'utilisation des membres statiques

L'utilisation des membres de données statiques et des fonctions membres statiques offre plusieurs avantages :

  • Partage de Ressources : Les membres de données statiques facilitent le partage de données entre toutes les instances d'une classe, réduisant la consommation de mémoire et favorisant une utilisation efficace des ressources.

  • Fonctions Utilitaires : Les fonctions membres statiques peuvent être utilisées pour implémenter des fonctions utilitaires ou effectuer des opérations qui ne dépendent pas de l'état de l'objet.

  • Opérations à l'Échelle de la Classe : Les fonctions membres statiques fournissent un moyen d'effectuer des opérations à l'échelle de la classe ou de manipuler des données au niveau de la classe sans avoir besoin d'instancier un objet.

cpp

main

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 }

Remarque

Essayez d'expérimenter avec une classe Exemple et ses membres statiques

Laquelle des affirmations suivantes concernant les variables membres statiques est vraie ?

Laquelle des affirmations suivantes concernant les variables membres statiques est vraie ?

Sélectionnez quelques réponses correctes

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 1. Chapitre 6
We're sorry to hear that something went wrong. What happened?
some-alt