69732

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

Домашняя работа

Информатика, кибернетика и программирование

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

Украинкский

2014-10-09

25.5 KB

1 чел.

Самостійне вивчення

Тема 9: Статичні елементи класу

За допомогою ідентифікатора static можна описати статичні поля та методи класу. Їх можна розглядати як глобальні змінні або функції, які доступні тільки в межах області класу.

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

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

  Пам'ять під статичне поле виділяється один раз при його ініціалізації незалежно від числа створених об'єктів (і навіть при їх відсутності) і ініціалізується за допомогою операції доступу до області дії, а не операції вибору (визначення повинне бути записано поза функціями):

class A{

public:

static int count;   // Оголошення в класі

}:

int А::count;      // Визначення в глобальній області

                        // За замовчуванням ініціалізується нулем

// int А::count = 10;     Приклад ініціалізації довільним значенням    

Статичні поля доступні як через ім'я класу, так і через ім'я об'єкту:

А *а, b;

...

cout << A::ccount << a->count << b.count;

// Буде виведене одне і те ж

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

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

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

Статичні методи призначені для звернення до статичних полів класу. Вони можуть звертатися безпосередньо тільки до статичних полів і викликати тільки інші статичні методи класу, тому що їм не передається прихований покажчик this. Звернення до статичних методів робиться так само, як до статичних полів — або через ім'я класу, або, якщо хоча б один об'єкт класу вже створений, через ім'я об'єкту.

class A

{

static int count; // Поле count - приховане

public:

static void inc_count()

{

count++;

}

};

А::int count;                 // Визначення в глобальній області

void f()

{

А а;

// a.count++ - не можна, поле count приховане

// Зміна поля за допомогою статичного методу: a.inc_count();

// або А::inc_count();

}

Статичні методи не можуть бути константними (const) і віртуальними (virtual).


 

А также другие работы, которые могут Вас заинтересовать

13208. Словянські народи у добу середньовіччя. Польська держава у ІХ- ХVI ст 94.5 KB
  Слов€янські народи у добу середньовіччя. Польська держава у ІХ ХVI ст.. До ІХст на польських землях проживало близько тридцяти слав€янських племен. Центрами об€єднань польських земель були: Велика Польща Північна і Центральна Польща частина Прусії і Мала Пол
13209. Балканські війни 29.5 KB
  Балканські війни На початку ХХ століття стало ясно що турецьке панування над деякими балканськими народами підходить до кінця. В березні 1912 року Болгарія і Сербія уклали договір про взаємодопомогу в разі нападу на одну з цих країн. Метою договору була війна з Тур
13210. Болгарія на початку Другої світової війни (1939-1941) 112.5 KB
  Болгарія на початку Другої світової війни 1939-1941 15 вересня 1939 р. болгарський уряд Кьосеіванова оголосив що буде дотримуватися політики нейтралітету Болгарії. Правлячі кола країни прагнули визнати щоб у протистоянні воєнних угруповань знайти для Болгарії
13211. ЕТНОГЕНЕЗ РАННІХ СЛОВЯН 226.5 KB
  Валентин СЄДОВ ЕТНОГЕНЕЗ РАННІХ СЛОВ’ЯН Значний внесок у вивчення слов’янського етногенезу зробило мовознавство. Пошуки витоків слов’янства і розвитку праслов’янської мови були розпочаті лінґвістами у XIX ст. Узагалі мова надійна ознака всякої етнічної спільнос...
13212. Российская историческая хронология с древнейших времен до начала ХХ столетия 46.85 KB
  Российская историческая хронология с древнейших времен до начала ХХ столетия 800е Установились прямые связи между Хазарским каганатом столица в г. Итиль близ дельты Волги и скандинавами по речному пути ВолховИльменьМстаВолга 860 Русы варяги и славяне соверши
13213. Утворення та політичний устрій Російської централізованої держави 44.71 KB
  Тема: Утворення та політичний устрій Російської централізованої держави Необхідно зазначити що процес утворення Російської централізованої держави мав ряд особливостей: 1 проходив при наявності монголотатарського гноблення постійне відбирання матеріальних і лю
13214. Російська держава у ХVІ – XVII ст. 32.57 KB
  Російська держава у ХVІ – XVII ст. План. Росія у період правління Івана Грозного 1533 – 1584 рр.. Смута в Росії на початку XVII ст. Заснування і правління династії Романових у XVII ст. 1. Іван IV Грозний 1533–1584. Владу у малолітнього Івана оспорювали боярські угрупов
13215. Россия после Смуты (ИСТОРИЯ) 54.89 KB
  Россия после Смуты ИСТОРИЯ Возрождение самодержавия. Михаил Романов был молод и неопытен. Про него говорили что он был благоверен зело кроток же и милостив. Но расчеты бояр на то что юным царем легко будет управлять не оправдались. Вокруг Михаила сразу же спло
13216. Личность Петра І 26.12 KB
  Личность Петра І Петр I поражал современников масштабом своей личности. Поражает он и нас потомков. Таковы богатство и одаренность его натуры противоречивость и цельность его характера. Это был двухметровый гигант со стройной фигурой порывистыми движениями правильн