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;

}


 

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

26428. Область орбиты 22.5 KB
  Снаружи от лобной кости отходит образуя край орбитального кольца скуловой отросток processus zygomaticus который у лошадей и КРС доходит до скулового отростка височной кости или височного отростка скуловой кости и образует полное кольцо орбиты а у свиней и собак не доходит и образует неполное кольцо. От наружной поверхности чешуи височной кости ответвляется скуловой отросток височной кости proc. zygomaticus os temporale который соединяется с височным отростком скуловой кости proc.
26429. Область холки 19.5 KB
  Иннервация: дорсальные ветви грудных спинномозговых нервов трапециевидный нерв.
26430. Общие закономерности строения организма 21 KB
  Эта закономерность выражается во взаимосвязях основных проявлений жизни реактивность обмен веществ размножение и рос наследственность и изменчивость с условиями внешней среды различный характер внешней среды различные химические и физические свойства среды фактор времени образ жизни борьба за существование. путём гомеостаза поддержания постоянства внутренней среды организма.
26431. Общий план строения нервной системы, значение 19.5 KB
  Она условно подразделяется на отделы: центральный и периферический состоящие из соматических осуществляющих связь с поперечнополосатыми мышцами тела или автономных образований. Вегетативные автономные образования подразделяются на симпатическую осуществляющую связь с гладкими мышцами сосудов и парасимпатическую обеспечивающую связь с гладкими мышцами внутренностей и железами.
26432. Однокамерный желудок 25 KB
  Тело желудка corpus ventriculi изогнуто. Различают большую кривизну желудка curvatura ventriculi major и малую кривизну curvatura ventriculi minor. В области большой кривизны между входной и выходной частями стенку желудка называют донной fundus ventriculi. На малую кривизну желудка с диафрагмы и печени переходит брюшина и образует малый сальник omentum minus.
26433. Опорно-двигательный аппарат (apparatus locomotorius) 20.5 KB
  Все его системы активно участвуют в реализации биомеханического двигательного поведения животных которое складывается из 2 компонентов: статический удержание животного на ногах во время покоя динамический перемещение тела в пространстве локомоция. Костносвязочная и мышечная системы единый биомеханический аппарат а его системы взаимообуславливают друг друга.
26434. Орган слуха и равновесия 20.5 KB
  Наружное ухо: ушная раковина и наружный слуховой проход железы выделяющие серу. Среднее ухо: барабанная полость молоточек наковальня чечевицеобразная косточка и стремечко евстахиева труба с носоглоткой. Внутреннее ухо: костный и перепончатый лабиринт. Внутреннее ухо состоит из преддверия vestibulum улитки cochlea и вестибулярного аппарата.
26435. Организм и его составляющие 21 KB
  Уровни анатомической организации организма: организм аппарат функциональное объединение разнородных органов которые отличаются своим происхождением развитием но объединяются общностью функций эндокринный опорнодвигательный мочеполовой аппарат система органов совокупность органов имеющих общий план строения общность развития из 1 эмбрионального зачатка функций система органов пищеварения трубкообразный тип из энтодермы. 3 группы систем органов: соматическая висцеральная и интегрирующая сердечнососудистая система...
26436. Органы кроветворения и иммунной защиты 21.5 KB
  Они делятся на: центральные органы красный костный мозг и тимус и периферические контролирующие внутреннюю среду: селезёнка и лимфоузлы; на границе организма с внешней средой: миндалины лимфоидные образования пищеварительного тракта дыхательного аппарата мочеполового аппарата. Красный костный мозг medulla osse в костях вырабатывает в периферическую кровь кровяные клетки.