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
12345class 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
SecondExample.h
1234567class 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
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 }
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
Awesome!
Completion rate improved to 3.13
Statisk Medlemmar i Klassen
Svep för att visa menyn
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
12345class 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
SecondExample.h
1234567class 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
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 }
Tack för dina kommentarer!