Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Статичні члени класу

Автор:   •  Февраль 11, 2024  •  Лекция  •  838 Слов (4 Страниц)  •  84 Просмотры

Страница 1 из 4

Лек2

Статичні члени класу

Хоча кожен об'єкт класу має однаковий набір полів і методів, значення  полів у кожного об'єкта свої, а результат виклику методів у загальному  випадку залежить від того, з якого об'єкта метод викликається. Насправді це не завжди так. Існують особливі члени класу, які називають статичні.  Статичний член є загальним всім об'єктів цього класу.

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

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

Статичні члени оголошуються, як і звичайні, але перед статичним членом  вказується ключове слово static. Розглянемо спочатку випадок статичного  поля

Приклади  

Статичні поля

Перевантаження функцій

Після класів, ймовірно, наступною важливою та незвичайною  можливістю C++ є навантаження функцій (function overloading).  Перевантаження функцій не тільки забезпечує механізм, за  допомогою якого C++ досягається один з типів поліморфізму, вона  також формує те ядро, в якого розвивається все середовище  програмування на C + +

У C++ дві або більше функції можуть мати те саме ім'я,  відрізняючись

або типом, або числом своїх аргументів, або тим і іншим. Якщо дві або більше функцій мають однакове ім’я, то говорять, що вони  перевантажені.

Приклад 3

Приклад  

Статичні поля

#include<iostream> using namespace std; class SimpleClass{ public:

//Статичне поле: static int m;

//Нестатичне поле: int n;

void show();

} obj1, obj2;

//Повторне оголошення змінної: int SimpleClass::m;

int main(){

SimpleClass::m=10;

obj1.n=1;

obj2.n=2;

obj1.show();

obj2.show();

obj1.m=100;

obj2.show();

return 0;}

//Опис методу:

void SimpleClass::show(){

cout<<"Static field m = "<<m<<endl; cout<<"Nonstatic field n = "<<n<<endl;} Результати

Static field m = 10;

Nonstatic field n = 1  

Static field m = 10;  

Nonstatic field n = 2

Static field m = 100;

Nonstatic field n = 2

Приклад 2

Статичні методи

#include<iostream>

using namespace std;

class SimpleClass{

public:

//Статичне поле:

static int m;

//Нестатичне поле:

int n;

void show();

//Статичний метод:

static void msum (int k);

} obj1, obj2;

//Повторне оголошення змінної:

int SimpleClass::m;

int main(){

//Виклик статичного методу:

SimpleClass::msum(10);

obj1.n=1;

obj2.n=2;

obj1.show();

obj2.show();

//Виклик статичного методу:

obj1.msum(90);

obj2.show();

return 0;}

//Опис нестатичного методу:

void SimpleClass::show(){

...

Скачать:   txt (8.2 Kb)   pdf (88.9 Kb)   docx (14.6 Kb)  
Продолжить читать еще 3 страниц(ы) »
Доступно только на Essays.club