Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Статичні Члени Класу | Основи ООП у C++
C++ ООП

bookСтатичні Члени Класу

У об'єктно-орієнтованому програмуванні ключове слово static має особливе значення, змінюючи поведінку атрибутів і методів. Існують ситуації, коли необхідно, щоб певні дані були спільними для всіх об'єктів певного класу, а не дублювалися для кожного екземпляра. У таких випадках використовуються статичні члени даних.

Синтаксис статичних членів

Створення статичного члена класу є простим. Необхідно лише додати ключове слово static перед оголошенням.

Example.h

Example.h

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

У наведеному вище прикладі static_attribute та static_method() оголошені як статичні члени даних класу class Example. На відміну від звичайних членів даних, статичні члени даних асоціюються з класом загалом, а не з окремими об'єктами. Це означає, що всі екземпляри Example спільно використовують одні й ті ж статичні члени.

Ініціалізація є важливою для статичних членів даних, і вона повинна виконуватися поза межами класу, якщо тільки член не використовує також ключове слово 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;

Переваги використання статичних членів

Використання статичних змінних-членів і статичних функцій-членів має кілька переваг.

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

Яке з наступних тверджень про статичні змінні-члени є правильним?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 1. Розділ 6

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Awesome!

Completion rate improved to 3.13

bookСтатичні Члени Класу

Свайпніть щоб показати меню

У об'єктно-орієнтованому програмуванні ключове слово static має особливе значення, змінюючи поведінку атрибутів і методів. Існують ситуації, коли необхідно, щоб певні дані були спільними для всіх об'єктів певного класу, а не дублювалися для кожного екземпляра. У таких випадках використовуються статичні члени даних.

Синтаксис статичних членів

Створення статичного члена класу є простим. Необхідно лише додати ключове слово static перед оголошенням.

Example.h

Example.h

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

У наведеному вище прикладі static_attribute та static_method() оголошені як статичні члени даних класу class Example. На відміну від звичайних членів даних, статичні члени даних асоціюються з класом загалом, а не з окремими об'єктами. Це означає, що всі екземпляри Example спільно використовують одні й ті ж статичні члени.

Ініціалізація є важливою для статичних членів даних, і вона повинна виконуватися поза межами класу, якщо тільки член не використовує також ключове слово 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;

Переваги використання статичних членів

Використання статичних змінних-членів і статичних функцій-членів має кілька переваг.

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

Яке з наступних тверджень про статичні змінні-члени є правильним?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 1. Розділ 6
some-alt