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


 

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

41648. Изучение приборов для измерения давления. Тарировка пружинного манометра 577.06 KB
  Изучение приборов для измерения давления. В Международной системе единиц СИ единицей давления является паскаль Па. Используются также внесистемные единицы измерения давления: техническая атмосфера ат равная кгс см ; миллиметр водяного столба мм вод.
41649. Наблюдение роста кристаллов из раствора 339.58 KB
  Нагреть раствор. Перелить раствор в стакан. Привязать к карандашу нить чтобы она опустилась в раствор.
41650. Технологии работы со списками в EXCEL 1.79 MB
  Цель работы: научиться создавать при помощи EXCEL базу данных содержащую различные сведения о работе фирмы. Список выполняет функцию базы данных. Столбцы называются полями а строки записями множество записей образует поле данных. Требуется создать базу данных работы фирмы и автоматизировать работу выдачи бланков заказов.
41651. Реализация функций родительского контроля ОС Windows 2.21 MB
  Родительский контроль компьютера — это набор программ и действий, который направлен на организацию или запрет использования детьми компьютерного времени, доступа к играм или другим программам
41653. Методы защиты информации. Шифр Цезаря 233.01 KB
  При шифровании исходного текста каждая буква заменяется другой буквой того же алфавита по следующему правилу. При достижении конца алфавита выполняется циклический переход к его началу.N – символы алфавита; N ширина алфавита. Пусть k – число позиций сдвига символов алфавита при шифровании 0 k N.
41655. Техника аудиовизуальных средств информации 11.25 MB
  В видеомонтаже важным понятием является понятие рендеринга. Рендеринг видео video rendering это процесс построения изображения каждого кадра по его описанию которое пользователь создает в процессе монтажа фильма. В видеоредакторах рендеринг производится для предварительного просмотра фильма или при его экспорте во внешний файл.