Contenu du cours
C++ Oop
C++ Oop
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
.
Example
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
.
FirstExample
SecondExample
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.
main
#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
Merci pour vos commentaires !