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).


 

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

77777. Многоэтажный жилой дом 3.76 MB
  Диски перекрытий включают сборные многопустотные плиты. Сборные плиты оперты концами на монолитные несущие ригели посредством бетонных шпонок образующихся при их бетонировании в открытых полостях по торцам плит.
77780. Теорія і практика оподаткування підприємства «Унірем Агро» 1.36 MB
  Актуальність теми полягає у розгляді законів та податків, що регулюють і регламентують всю діяльність сільськогосподарських підприємств в Україні та забезпечують відповідний контроль над ними, і які покликані внести спрощення у справлянні податків із сільськогосподарських товаровиробників...
77782. Реконструкция КУСП «Мишневичи» Шумилинского района 907.93 KB
  Одна из главных проблем, стоящих на современном этапе развития,- рациональное применение электрической энергии, наиболее эффективное использование электрооборудования. Для достижения этой цели необходимо знать и уметь пользоваться методом технических расчётов в планировании...
77783. Проектирование СТОА ООО “Стройметмастерсервис” 1.72 MB
  В 1970 году вступила в строй первая очередь завода рассчитанная на выпуск 220 тыс. автомобилей Жигули, и с конвейера сошли первые автомобили ВАЗ 2101, за основу которых был взят итальянский автомобиль ФИАТ 124. Мощность двигателя 2101 составляла 60 л.с., а максимальная скорость 140 км/ч.