Статичні Члени Класу
У об'єктно-орієнтованому програмуванні ключове слово static
має особливе значення, змінюючи поведінку атрибутів і методів. Існують ситуації, коли необхідно, щоб певні дані були спільними для всіх об'єктів певного класу, а не дублювалися для кожного екземпляра. У таких випадках використовуються статичні члени даних.
Синтаксис статичних членів
Створення статичного члена класу є простим. Необхідно лише додати ключове слово static
перед оголошенням.
Example.h
12345class 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
SecondExample.h
1234567class Example { public: static int static_attribute; static void static_method() { std::cout << "Static method!" << std::endl; } }; int Example::static_attribute = 0;
Переваги використання статичних членів
Використання статичних змінних-членів і статичних функцій-членів має кілька переваг.
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 }
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Awesome!
Completion rate improved to 3.13
Статичні Члени Класу
Свайпніть щоб показати меню
У об'єктно-орієнтованому програмуванні ключове слово static
має особливе значення, змінюючи поведінку атрибутів і методів. Існують ситуації, коли необхідно, щоб певні дані були спільними для всіх об'єктів певного класу, а не дублювалися для кожного екземпляра. У таких випадках використовуються статичні члени даних.
Синтаксис статичних членів
Створення статичного члена класу є простим. Необхідно лише додати ключове слово static
перед оголошенням.
Example.h
12345class 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
SecondExample.h
1234567class Example { public: static int static_attribute; static void static_method() { std::cout << "Static method!" << std::endl; } }; int Example::static_attribute = 0;
Переваги використання статичних членів
Використання статичних змінних-членів і статичних функцій-членів має кілька переваг.
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 }
Дякуємо за ваш відгук!