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


 

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

19331. ОБЩИЕ ПОЛОЖЕНИЯ ОБ АЛУ 592 KB
  АК ЛЕКЦИЯ 8 ОБЩИЕ ПОЛОЖЕНИЯ ОБ АЛУ АРИФМЕТИКОЛОГИЧЕСКОЕ УСТРОЙСТВО АЛУ – одна из основных функциональных частей процессора осуществляющая непосредственное преобразование информации. Все операции выполняемые в АЛУ можно разделить на следующие группы: ...
19332. КЛАССИФИКАЦИЯ И ФУНКЦИОНИРОВАНИЕ АУ 630.5 KB
  АК ЛЕКЦИЯ № 9 КЛАССИФИКАЦИЯ И ФУНКЦИОНИРОВАНИЕ АУ РУС Структура алу Обобщенная структурная схема АЛУ рис. 7.1 включает: блок регистров для приема и размещения операндов и результатов; операционный блок в котором осуществляется преобразование операндов в с
19333. АУ C ФИКСИРОВАННОЙ ЗАПЯТОЙ 425.5 KB
  АК ЛЕКЦИЯ № 10 АУ C ФИКСИРОВАННОЙ ЗАПЯТОЙ Базис целочисленных операционных устройств Для большинства современных ВМ общепринятым является такой формат с фиксированной запятой ФЗ когда запятая фиксируется справа от младшего разряда кода числа. По этой причине со...
19334. УСКОРЕНИЕ ЦЕЛОЧИСЛЕННОГО УМНОЖЕНИЯ 195 KB
  АК ЛЕКЦИЯ № 11 УСКОРЕНИЕ ЦЕЛОЧИСЛЕННОГО УМНОЖЕНИЯ Методы ускорения умножения можно условно разделить на аппаратные и логические. Те и другие требуют дополнительных затрат оборудования которые при использовании аппаратных методов возрастают с увеличением разряднос...
19335. УСКОРЕНИЕ ЦЕЛОЧИСЛЕННОГО ДЕЛЕНИЯ. АУ ДЛЯ ЧИСЕЛ С ПЛАВАЮЩЕЙ ЗАПЯТОЙ 82.5 KB
  АК ЛЕКЦИЯ № 12 УСКОРЕНИЕ ЦЕЛОЧИСЛЕННОГО ДЕЛЕНИЯ. АУ ДЛЯ ЧИСЕЛ С ПЛАВАЮЩЕЙ ЗАПЯТОЙ Ускорение целочисленного деления Следует отметить что операция деления предоставляет не слишком много путей для своей оптимизации по времени. Тем не менее определенные возможности ...
19336. УПРАВЛЯЮЩИЕ УСТРОЙСТВА С ПРОГРАММИРУЕМОЙ ЛОГИКОЙ 181 KB
  АК ЛЕКЦИЯ № 13 УПРАВЛЯЮЩИЕ УСТРОЙСТВА С ПРОГРАММИРУЕМОЙ ЛОГИКОЙ Функции центрального устройства управления Устройство управления УУ вычислительной машины реализует функции управления ходом вычислительного процесса обеспечивая автоматическое выполнение ком
19337. АДРЕСАЦИЯ МК. СТРУКТУРА УПРАВЛЯЮЩЕЙ ПАМЯТИ 177.5 KB
  АК ЛЕКЦИЯ № 14 АДРЕСАЦИЯ МК. СТРУКТУРА УПРАВЛЯЮЩЕЙ ПАМЯТИ Адресация микрокоманд При выполнении микропрограммы адрес очередной микрокоманды относится к одной из трех категорий: определяется кодом операции команды; является следующим по порядку адресом;
19338. ОРГАНИЗАЦИЯ ВНУТРИМАШИННОГО ОБМЕНА ИНФОРМАЦИЕЙ. ОБЩИЕ ВОПРОСЫ 177.5 KB
  АК ЛЕКЦИЯ № 15 ОРГАНИЗАЦИЯ ВНУТРИМАШИННОГО ОБМЕНА ИНФОРМАЦИЕЙ. ОБЩИЕ ВОПРОСЫ. Совокупность трактов объединяющих между собой основные устройства ВМ центральный процессор память и модули ввода/вывода образует структуру взаимосвязей вычислительной машины. Структур...
19339. АРБИТРАЖ ШИН 163.5 KB
  АК ЛЕКЦИЯ № 16 АРБИТРАЖ ШИН В реальных системах на роль ведущего вправе одновременно претендовать сразу несколько из подключенных к шине устройств однако управлять шиной в каждый момент времени может только одно из них. Чтобы исключить конфликты шина должна предус...