Luokan Staattiset Jäsenet
Olio-ohjelmoinnissa static
-avainsanalla on erityinen merkitys, sillä se muuttaa attribuuttien ja metodien käyttäytymistä. Joskus on tilanteita, joissa tiettyjen tietojen täytyy olla jaettuina kaikille luokan olioille sen sijaan, että ne kopioitaisiin jokaiselle ilmentymälle erikseen. Tässä kohtaa staattiset tietojäsenet tulevat käyttöön.
Staattisten jäsenten syntaksi
Luokan staattisen jäsenen luominen on yksinkertaista. Sinun tarvitsee vain lisätä määrittelyn eteen static
-avainsana.
Example.h
12345class Example { public: static int static_attibute; static void static_method() { std::cout << "Static method!" << std::endl; } };
Yllä olevassa esimerkissä static_attribute
ja static_method()
on määritelty luokan class Example
staattisiksi jäsentiedoiksi. Toisin kuin tavalliset jäsentiedot, staattiset jäsentiedot liittyvät luokkaan itseensä eivätkä yksittäisiin olioihin. Tämä tarkoittaa, että kaikki Example
-luokan ilmentymät jakavat samat staattiset jäsenet.
Staattisten jäsentietojen alustaminen on olennaista, ja se on tehtävä luokan ulkopuolella, ellei jäsen käytä myös const
-avainsanaa.
FirstExample.h
SecondExample.h
1234567class Example { public: static int static_attribute; static void static_method() { std::cout << "Static method!" << std::endl; } }; int Example::static_attribute = 0;
Staattisten jäsenten käytön edut
Staattisten tietojäsenten ja staattisten jäsenfunktioiden käyttö tarjoaa useita etuja.
main.cpp
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 }
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Awesome!
Completion rate improved to 3.13
Luokan Staattiset Jäsenet
Pyyhkäise näyttääksesi valikon
Olio-ohjelmoinnissa static
-avainsanalla on erityinen merkitys, sillä se muuttaa attribuuttien ja metodien käyttäytymistä. Joskus on tilanteita, joissa tiettyjen tietojen täytyy olla jaettuina kaikille luokan olioille sen sijaan, että ne kopioitaisiin jokaiselle ilmentymälle erikseen. Tässä kohtaa staattiset tietojäsenet tulevat käyttöön.
Staattisten jäsenten syntaksi
Luokan staattisen jäsenen luominen on yksinkertaista. Sinun tarvitsee vain lisätä määrittelyn eteen static
-avainsana.
Example.h
12345class Example { public: static int static_attibute; static void static_method() { std::cout << "Static method!" << std::endl; } };
Yllä olevassa esimerkissä static_attribute
ja static_method()
on määritelty luokan class Example
staattisiksi jäsentiedoiksi. Toisin kuin tavalliset jäsentiedot, staattiset jäsentiedot liittyvät luokkaan itseensä eivätkä yksittäisiin olioihin. Tämä tarkoittaa, että kaikki Example
-luokan ilmentymät jakavat samat staattiset jäsenet.
Staattisten jäsentietojen alustaminen on olennaista, ja se on tehtävä luokan ulkopuolella, ellei jäsen käytä myös const
-avainsanaa.
FirstExample.h
SecondExample.h
1234567class Example { public: static int static_attribute; static void static_method() { std::cout << "Static method!" << std::endl; } }; int Example::static_attribute = 0;
Staattisten jäsenten käytön edut
Staattisten tietojäsenten ja staattisten jäsenfunktioiden käyttö tarjoaa useita etuja.
main.cpp
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 }
Kiitos palautteestasi!