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;

}


 

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

2228. АНАЛИЗ РЕЖИМА АВТОКОПАНИЯ ЭКСКАВАТОРНОГО ЭЛЕКТРОПРИВОДА 191.77 KB
  В статье обсуждаются вопросы организации режима автокопания в рамках системы управления электропривода экскаваторов.
2229. Стоковые выбросы в начале ХХ века 13.31 KB
  Затраты на очистку ущерба, причиненного загрязнением, естественно, не возлагается на тех, кто вызывает его. Хотя многие компании, действующие как хорошие граждане прилагают усилия для защиты окружающей среды; существует небольшой экономический стимул для них, что бы делать это.
2230. Египетский урок французского абсурда, или Опасные капризы из Гизы 13.95 KB
  Является ли французский драматург-абсурдист Эжен Ионеско, совершенно бессмысленный и беспощадный на первый (неопытный) взгляд, программным автором для тех, кто к ярым театралам и добросовестным филологам себя не причисляет.
2231. Железо-углеродистые сплавы 18.48 KB
  ОСНОВНЫЕ РАВНОВЕСНЫЕ ФАЗЫ И СТРУКТУРНЫЕ СОСТАВЛЯЮЩИЕ ЖЕЛЕЗО-УГЛЕРОДИСТЫХ СПЛАВОВ.
2232. Психология личности 1.13 MB
  Проблема человека в системе современного научного знания. Личность в философии, социологии и психологии. Личность в отечественной психологии. Концепции личности К.К. Платонова. Учение Б.Г. Ананьева о человеке. Направленность в структуре личности.
2233. Религия в древнем Египте 15.77 KB
  Религиозные верования в ранних обществах. Фетишизм - наделение предметов сверхъестественными свойствами. Древнеегипетское общество.
2234. Голография и ее применение 1.04 MB
  Физические принципы голографии. Голографические оптические элементы. Голографические запоминающие устройства. Носители информации для голографических запоминающих устройств. Голографические запоминающие устройства двоичной информации.
2235. Деньги, их сущность и функции 15.92 KB
  Деньги - всеобщий эквивалент, всеобщее покупательное средство. Главная черта денег-свойство абсолютной ликвидности.
2236. Расчет величин, характеризующих силовой энергетический трансформатор и его режимы работы 302.89 KB
  СИЛОВОЙ ЭНЕРГЕТИЧЕСКИЙ ТРАНСФОРМАТОР И ОСНОВНЫЕ ИНЖЕНЕРНЫЕ ЗАДАЧИ, РЕШАЕМЫЕ С ПОМОЩЬЮ ЕГО ТЕОРИИ. УСЛОВИЯ И ПРАКТИЧЕСКИЕ МЕТОДЫ АНАЛИЗА РАБОТЫ ТРАНСФОРМАТОРА НА ПОТРЕБИТЕЛЬСКОЙ ПОДСТАНЦИИ. ЗАВИСИМОСТЬ МАГНИТНОЙ ИНДУКЦИИ В СЕРДЕЧНИКЕ ОТ ТОКА ПЕРВИЧНОЙ ОБМОТКИ. СОПРОТИВЛЕНИЯ ТРАНСФОРМАТОРА В РЕЖИМАХ ХОЛОСТОГО ХОДА И КОРОТКОГО ЗАМЫКАНИЯ.