68944

Статичні функції-члени

Лекция

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

Функції-члени також можуть бути статичними, але на них розповсюджується декілька обмежень. Вони мають прямий доступ тільки до інших статичних членів класу. (Зрозуміло, глобальні функції і дані також доступні статичним функціям-членам.) Статична функція-член не має покажчика this.

Украинкский

2014-09-27

28 KB

0 чел.

Лекція № 6

Тема: Статичні функції-члени

Функції-члени також можуть бути статичними, але на них розповсюджується декілька обмежень. Вони мають прямий доступ тільки до інших статичних членів класу. (Зрозуміло, глобальні функції і дані також доступні статичним функціям-членам.) Статична функція-член не має покажчика this. Одна і та ж функція не може одночасно мати статична і нестатична версії. Статичні функції не можуть бути віртуальними. І на закінчення, статичні функції не можна оголошувати за допомогою ключових слів const або volatile.

Розглянемо злегка змінену версію програми, що надає один і той же ресурс різним об'єктам. Звернете увагу на те, що функцію get_reeource () можна викликати як незалежно від об'єкту, використовуючи ім'я класу і оператора дозволу області видимості, так і через об'єкт.

#include <iostream>

using namespace std;

class cl {

static  int resource;

public:

static  int get_resource() ;

void free_resource()   {  resource =  0;   }

};

int cl::resource;   //  Визначення ресурсу.

int cl::get_resource() {

if(resource)   return  0;   //   Ресурс  зайнятий.

else   {

resource = 1;

return 1;  // Ресурс наданий даному об'єкту.

}

}

int main() {

cl obi, ob2;

/* Функція get_resource() є статичною

тому її можна викликати незалежно від об'єкту. */ if(cl::get_resource()) cout << "Об'єкт obi володіє ресурсом\n";

if(!cl::get_resource()) cout << "Об'єкту оЬ2 доступ запрещен\n";

obi.free_resource() ;

if(ob2.get_resource()) // can still call using object syntax

cout « "Тепер об'єкт оЬ2 може використовувати ресурс\n";

return 0;

}

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

#include <iostream>

using namespace std;

class static_type {

static int i;

public:

static void init(int x) {i = x;}

void show() {cout « i;}

};

int static_type::i; // визначуваний змінну i

int main() {

// Ініціалізували статичні дані перед створенням об'єкту

static_type::init(100);

static_type х;

x.show(); // Відображається число 100

return 0;

}


 

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

6255. Основные принципы иммунотерапии 164.5 KB
  Основные принципы иммунотерапии Система иммунитета имеет ауторегуляторные клетки и механизмы, участвующие в разных фазах иммунной реакции, поэтому тотальное угнетение иммунитета вызывает ряд серьезных осложнений. Нарушение механизмов иммунитета игра...
6256. Сульфаниламидные средства. Синтетические средства разного химического строения 52 KB
  Сульфаниламидные средства. Синтетические средства разного химического строения Спектр действия, применение, побочные эффекты сульфаниламидов. Спектр действия, применение, побочные эффекты производных нитрофурана. Спектр действия, прим...
6257. Иррационализм и позитивизм 101.5 KB
  Иррационализм и позитивизм. Иррационализм А. Шопенгауэра и С. Кьеркегора. Личность, духовность - вот что такое истина. Это мой тезис (С. Кьеркегор). Не удивление, а недоумение и печаль суть начало философии (А. Шопенга...
6258. Что такое лексикология? Предмет и задачи лексикологии 22.8 KB
  Что такое лексикология? Предмет и задачи лексикологии Лексикология (lexicology) - раздел общего языкознания, предметом которого является лексический (словарный) состав языка. Лексикология - часть языкознания. Языкознание Филология...
6259. Молекулярные генетика 51 KB
  Молекулярные генетика Хромосомная теория закрепила за генами роль элементарных наследственных единиц, локализованных в хромосомах. Ген - функциональная единица наследственности, представляющая собой участок молекулы ДНК, содержащей информацию о...
6260. Управління маркетингом 33.82 KB
  Управління маркетингом Суть та основні завдання управління маркетингом. Аналіз ринкових можливостей фірми Сегментація та відбір цільових ринків Розробка комплексу маркетингу та реалізація маркетингових заходів...
6262. Потребители и рынки 110 KB
  Потребители и рынки Модель поведения потребителей. Характеристика потребителей. Потребительский рынок. Рынок предприятий. Любой фирме для обеспечения коммерческого успеха необходимо: выяснить конечного п...
6263. Забезпечення ефективного планування та організації освітнього процесу дошкільного навчального закладу 80.82 KB
  Забезпечення ефективного планування та організації освітнього процесу дошкільного навчального закладу. План Забезпечення ефективного планування та організації освітнього процесу дошкільного навчального закладу. Особливості ос...