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;

}


 

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

83748. Animals in our life 37.5 KB
  Учитель предлагает вспомнить стихотворение Моя мечта которое учащиеся учили дома наизусть. Сначала учитель прочитывает стихотворение затем по одной строчке вместе с детьми после чего каждый учащийся читает по одной строчки стихотворения по цепочке.
83749. Военная реформа Петра I 73.5 KB
  Цели урока: Дать характеристику военной реформы Петра I; Выяснить результаты петровской реформа; Значение петровской реформы для российской армии и России. Тема урока: объяснение нового материала. Методы и приёмы: Эвристическая беседа.
83750. Сравнение The Present Simple и The Present Continuous 204.68 KB
  Цель: более глубокое усвоение знаний, высокий уровень обобщения, систематизации. Задачи: Образовательные: обобщить материал как систему знаний, наглядно показать и закрепить разницу двух настоящих времен. Развивающие: развивать пространственное мышление, выявлять связи, формулировать выводы...
83751. Правовое регулирование единого сельскохозяйственного налога: общие положения, налогоплательщики, основные элементы налога, налоговая декларация 40.66 KB
  ЗАМЕНЯЕТ НАЛОГИ Освобождает от налогов: ОРГАНИЗАЦИИ: налога на прибыль организаций за исключением налога уплачиваемого с доходов по дивидендам и отдельным видам долговых обязательств налога на имущество организаций налога на добавленную стоимость за исключением НДС уплачиваемого при ввозе товаров на таможне а также при выполнении договора простого товарищества или договора доверительного управления имуществом ИНДИВИДУАЛЬНЫЕ ПРЕДПРИНИМАТЕЛИ: налога на доходы физических лиц в отношении доходов от предпринимательской деятельности...
83752. Правовое регулирование упрощенной системы налогообложения: общие положения, налогоплательщики, основные элементы налога, особенности уплаты 42.57 KB
  В связи с применением УСН налогоплательщики освобождаются от уплаты налогов применяемых общей системой налогообложения налога на имущество организаций налога на добавленную стоимость и др.13 НК РФ Переход на УСН с ЕНВД с начала того месяца в котором была прекращена их обязанность по уплате единого налога на вмененный доход п. СТАВКИ И ПОРЯДОК РАСЧЕТА Расчет налога производится по следующей формуле статья 346.
83753. Правовое регулирование системы налогообложения в виде единого налога на вмененный доход для отдельных видов деятельности: общие положения, налогоплательщики, основные элементы налога 40.79 KB
  ЕНВД применяется в отношении отдельных видов предпринимательской деятельности п. Налог на прибыль организаций В отношении прибыли полученной от предпринимательской деятельности облагаемой единым налогом 2. Налог на имущество организаций В отношении имущества используемого для ведения предпринимательской деятельности облагаемой единым налогом 3.
83754. Правовое регулирование системы налогообложения при выполнении соглашений о разделе продукции: общие положения, налогоплательщики, особенности уплаты 41.83 KB
  Система налогообложения при выполнении соглашений о разделе продукции особая система налогообложения специальный налоговый режим применяемый при выполнении соглашений которые заключены в соответствии с Федеральным законом от 30. № 225ФЗ О соглашениях о разделе продукции. Режим применяется в течение всего срока действия соглашения о разделе продукции.
83755. Правовое регулирование транспортного налога: общие положения, налогоплательщики, основные элементы налога, особенности регионального законодательства 42.78 KB
  Налогоплательщиками транспортного налога признаются лица на которых в соответствии с законодательством Российской Федерации зарегистрированы транспортные средства ст. Плательщиками налога также признаются физические лица получившие транспортные средства по доверенности выданной до 29 июля 2002 года. Следовательно по истечении трех лет с момента выдачи доверенности на право владения и распоряжения транспортным средством выданной до 29 июля 2002 года плательщиком транспортного налога признается физическое лицо на которое зарегистрировано...
83756. Правовое регулирование налога на игорный бизнес: налогоплательщики, основные элементы налога, особенности регионального законодательства 41.92 KB
  365 НК РФ Объект налогообложения налогом на игорный бизнес являются ст. Каждый объект налогообложения должен быть зарегистрирован в налоговой инспекции по месту установки не позднее чем за 2 рабочих дня до даты его установки. Регистрация игрового оборудования или пункта приема ставок проводится налоговым органом на основании заявления налогоплательщика с обязательным ой получением выдачей свидетельства о регистрации объекта объектов налогообложения. Любое изменение количества объектов необходимо также зарегистрировать в налоговых органах...