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

Зміст курсу

C++ ООП

C++ ООП

1. Основи ООП у C++
2. Конструктори та Деструктори
3. Огляд Інкапсуляції
4. Огляд Наслідування
5. Огляд Поліморфізму

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

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

course content

Зміст курсу

C++ ООП

C++ ООП

1. Основи ООП у C++
2. Конструктори та Деструктори
3. Огляд Інкапсуляції
4. Огляд Наслідування
5. Огляд Поліморфізму

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