Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Statische Leden van de Klasse | Fundamenten van OOP in C++
C++ OOP
course content

Cursusinhoud

C++ OOP

C++ OOP

1. Fundamenten van OOP in C++
2. Constructors en Destructors
3. Overzicht van Encapsulatie
4. Overzicht van Overerving
5. Overzicht van Polymorfisme

book
Statische Leden van de Klasse

In objectgeoriënteerd programmeren heeft het sleutelwoord static een bijzondere betekenis, doordat het het gedrag van attributen en methoden verandert. Er zijn situaties waarin bepaalde gegevens gedeeld moeten worden tussen alle objecten van een klasse in plaats van voor elk exemplaar te worden gerepliceerd. Dit is waar statische gegevensleden van pas komen.

De syntaxis van statische leden

Het aanmaken van een statisch lid van een klasse is eenvoudig. U hoeft alleen de declaratie vooraf te laten gaan door het sleutelwoord static.

Example.h

Example.h

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

In het bovenstaande voorbeeld zijn static_attribute en static_method() gedeclareerd als statische gegevensleden van de class Example. In tegenstelling tot reguliere gegevensleden zijn statische gegevensleden gekoppeld aan de klasse zelf in plaats van aan individuele objecten. Dit betekent dat alle instanties van Example dezelfde statische leden delen.

Initialisatie is essentieel voor statische gegevensleden en moet buiten de klasse worden uitgevoerd, tenzij het lid ook het const-sleutelwoord gebruikt.

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;

Voordelen van het gebruik van statische leden

Het gebruik van statische gegevensleden en statische lidfuncties biedt verschillende voordelen.

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

Welke van de volgende uitspraken over statische lidvariabelen is waar?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 1. Hoofdstuk 6

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

course content

Cursusinhoud

C++ OOP

C++ OOP

1. Fundamenten van OOP in C++
2. Constructors en Destructors
3. Overzicht van Encapsulatie
4. Overzicht van Overerving
5. Overzicht van Polymorfisme

book
Statische Leden van de Klasse

In objectgeoriënteerd programmeren heeft het sleutelwoord static een bijzondere betekenis, doordat het het gedrag van attributen en methoden verandert. Er zijn situaties waarin bepaalde gegevens gedeeld moeten worden tussen alle objecten van een klasse in plaats van voor elk exemplaar te worden gerepliceerd. Dit is waar statische gegevensleden van pas komen.

De syntaxis van statische leden

Het aanmaken van een statisch lid van een klasse is eenvoudig. U hoeft alleen de declaratie vooraf te laten gaan door het sleutelwoord static.

Example.h

Example.h

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

In het bovenstaande voorbeeld zijn static_attribute en static_method() gedeclareerd als statische gegevensleden van de class Example. In tegenstelling tot reguliere gegevensleden zijn statische gegevensleden gekoppeld aan de klasse zelf in plaats van aan individuele objecten. Dit betekent dat alle instanties van Example dezelfde statische leden delen.

Initialisatie is essentieel voor statische gegevensleden en moet buiten de klasse worden uitgevoerd, tenzij het lid ook het const-sleutelwoord gebruikt.

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;

Voordelen van het gebruik van statische leden

Het gebruik van statische gegevensleden en statische lidfuncties biedt verschillende voordelen.

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

Welke van de volgende uitspraken over statische lidvariabelen is waar?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 1. Hoofdstuk 6
some-alt