Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Luokan Staattiset Jäsenet | C++:n OOP:n Perusteet
C++ OOP
course content

Kurssisisältö

C++ OOP

C++ OOP

1. C++:n OOP:n Perusteet
2. Konstruktorit ja Destruktorit
3. Kapseloinnin Yleiskatsaus
4. Perinnän Yleiskatsaus
5. Polymorfismin Yleiskatsaus

book
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

Example.h

copy
12345
class 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

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;

Staattisten jäsenten käytön edut

Staattisten tietojäsenten ja staattisten jäsenfunktioiden käyttö tarjoaa useita etuja.

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

Mikä seuraavista väittämistä staattisista jäsenmuuttujista on tosi?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 6

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

course content

Kurssisisältö

C++ OOP

C++ OOP

1. C++:n OOP:n Perusteet
2. Konstruktorit ja Destruktorit
3. Kapseloinnin Yleiskatsaus
4. Perinnän Yleiskatsaus
5. Polymorfismin Yleiskatsaus

book
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

Example.h

copy
12345
class 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

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;

Staattisten jäsenten käytön edut

Staattisten tietojäsenten ja staattisten jäsenfunktioiden käyttö tarjoaa useita etuja.

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

Mikä seuraavista väittämistä staattisista jäsenmuuttujista on tosi?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 6
some-alt