Студопедия
Новини освіти і науки:
МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах


РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання


ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ"


ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ


Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків


Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні


Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах


Гендерна антидискримінаційна експертиза може зробити нас моральними рабами


ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ


ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів



Контакти
 


Тлумачний словник
Авто
Автоматизація
Архітектура
Астрономія
Аудит
Біологія
Будівництво
Бухгалтерія
Винахідництво
Виробництво
Військова справа
Генетика
Географія
Геологія
Господарство
Держава
Дім
Екологія
Економетрика
Економіка
Електроніка
Журналістика та ЗМІ
Зв'язок
Іноземні мови
Інформатика
Історія
Комп'ютери
Креслення
Кулінарія
Культура
Лексикологія
Література
Логіка
Маркетинг
Математика
Машинобудування
Медицина
Менеджмент
Метали і Зварювання
Механіка
Мистецтво
Музика
Населення
Освіта
Охорона безпеки життя
Охорона Праці
Педагогіка
Політика
Право
Програмування
Промисловість
Психологія
Радіо
Регилия
Соціологія
Спорт
Стандартизація
Технології
Торгівля
Туризм
Фізика
Фізіологія
Філософія
Фінанси
Хімія
Юриспунденкция






Масиви вказівників на функції

Так само, як оголошується масив вказівників на вбудовані типи даних (наприклад, int), можна оголосити масив вказівників на функції, з однаковою сигнатурою та однаковим типом значення, що повертається.

void Square (int, int0;

void Cube (int, int);

void Swap (int, int);

void (*pFuncArray[5]) (int, int);

int main( )

{

int v1, v2, c;

cin >> c

for (i=0; i<5; i++)

{

switch ( c)

{

case 1: pFuncArray[ i] = Square; break;

case 2: pFuncArray [i] = Cube; break;

case 3: pFuncArray [i] = Swap; break;

}

}

for (i=0; i<5; i++)

pFuncArray[i] (v1, v2);

}

 

pFuncArray оголошений як масив з 5 вказівників на функції, які приймають два цілих параметри та нічого не повертають. Адреса кожної функції передається в масив та стає його елементом. Потім функції послідовно всі викликаються через вказівники.

 

Вказівники на функції та масиви вказівників на функції можуть бути передані іншим функціям, які в ході виконання своїх задач можуть звертатись до цих функцій через вказівники.

 

Вказівники на функції-члени

Щоб створити вказівник на функцію-член класу, використовується такий ж синтаксис, що і для звичайного вказівника на функцію, але включаючий ім’я класу та оператор області дії (: :).

void (Shape : : *pFunc) (int, int);

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

void (Shape : : *pFunc) (int, int);

pFunc = Shape : : Move;

 

Вказівники на функції-члени можна занести в масив, який ініціалізується адресами різних функцій-членів, що викликаються за індексом в масиві.

Рекомендується використовувати вказівники на функції-члени для виклику методів в об’єктах класу, але не зловживати ними.

 




Переглядів: 157

Не знайшли потрібну інформацію? Скористайтесь пошуком google:

 

© studopedia.com.ua При використанні або копіюванні матеріалів пряме посилання на сайт обов'язкове.


Генерація сторінки за: 0.003 сек.