Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Statisk Medlemmar i Klassen | Grunderna i OOP i C++
C++ OOP
course content

Kursinnehåll

C++ OOP

C++ OOP

1. Grunderna i OOP i C++
2. Konstruktorer och Destruktorer
3. Översikt Av Inkapsling
4. Översikt av Arv
5. Översikt av Polymorfism

book
Statisk Medlemmar i Klassen

Inom objektorienterad programmering har nyckelordet static en särskild betydelse och förändrar attributs och metoders beteende. Det finns ibland situationer där viss data behöver delas mellan alla objekt av en klass istället för att dupliceras för varje instans. Det är här statisk datamedlem kommer in i bilden.

Syntaxen för statiska medlemmar

Att skapa en statisk medlem i en klass är enkelt. Du behöver bara lägga till nyckelordet static före deklarationen.

Example.h

Example.h

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

I exemplet ovan deklareras static_attribute och static_method() som statisk datamedlem i class Example. Till skillnad från vanliga datamedlemmar är statiska datamedlemmar kopplade till klassen själv snarare än till enskilda objekt. Detta innebär att alla instanser av Example delar samma statisk medlem.

Initiering är avgörande för statiska datamedlemmar och måste göras utanför klassen om inte medlemmen även använder nyckelordet 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;

Fördelar med att använda statiska medlemmar

Användningen av statiska datamedlemmar och statiska medlemsfunktioner ger flera fördelar.

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

Vilket av följande påståenden om statiska medlemsvariabler är sant?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 1. Kapitel 6

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

course content

Kursinnehåll

C++ OOP

C++ OOP

1. Grunderna i OOP i C++
2. Konstruktorer och Destruktorer
3. Översikt Av Inkapsling
4. Översikt av Arv
5. Översikt av Polymorfism

book
Statisk Medlemmar i Klassen

Inom objektorienterad programmering har nyckelordet static en särskild betydelse och förändrar attributs och metoders beteende. Det finns ibland situationer där viss data behöver delas mellan alla objekt av en klass istället för att dupliceras för varje instans. Det är här statisk datamedlem kommer in i bilden.

Syntaxen för statiska medlemmar

Att skapa en statisk medlem i en klass är enkelt. Du behöver bara lägga till nyckelordet static före deklarationen.

Example.h

Example.h

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

I exemplet ovan deklareras static_attribute och static_method() som statisk datamedlem i class Example. Till skillnad från vanliga datamedlemmar är statiska datamedlemmar kopplade till klassen själv snarare än till enskilda objekt. Detta innebär att alla instanser av Example delar samma statisk medlem.

Initiering är avgörande för statiska datamedlemmar och måste göras utanför klassen om inte medlemmen även använder nyckelordet 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;

Fördelar med att använda statiska medlemmar

Användningen av statiska datamedlemmar och statiska medlemsfunktioner ger flera fördelar.

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

Vilket av följande påståenden om statiska medlemsvariabler är sant?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 1. Kapitel 6
some-alt