46231

Указатели на функции, имитация таблиц виртуальных функций с помощью процедурного подхода

Доклад

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

Возможны только две операции с функциями: вызов и взятие адреса. Указатель, полученный с помощью последней операции, можно впоследствии использовать для вызова функции.

Русский

2013-11-20

14.47 KB

0 чел.

16.Указатели на функции, имитация таблиц виртуальных функций с помощью процедурного подхода.

Указатель на функцию

Возможны только две операции сфункциями: вызов и взятие адреса.

Указатель, полученный с помощью последней операции, можно впоследствии использовать для вызова функции.

voiderror(char* p) { /* ... */ }

// указатель на функцию

void (*efct)(char*);

void f() {

efct = &error;

 // efctнастроен на функцию error

 // вызов error через указатель efct

(*efct)("error");

}

Реализация таблицы виртуальных функций

Ниже приводится пример имитации ОО стиля. Он демонстрирует те затраты, от которых удалось избавиться, перейдя на объектно-ориентированные языки. Подобный прием наверняка использовался многими программистами еще до наступления эры ООП с целью создания более гибкой конструкции программы.

// Структура таблицы виртуальных функций базового

// класса. Содержит указатели на функции,

// переопределяемые в производных классах.

struct shape_vtbl {

 // ввод данных из стандартного потока

void (*In)(shape *_this);

 // вывод данных в стандартный поток

void (*Out)(shape *_this);

 // вычисление площади фигуры

double (*Area)(shape *_this);

 // удаление обобщенной фигуры

void (*Destroy)(shape *_this);

};


 

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

85654. Обліку та аналізу економічного стану підприємства (на прикладі «Краснодонського м’ясокомбінату») 744.5 KB
  Мета роботи – розробка інформаційної системи, що дозволяє проводити облік та аналіз економічного стану підприємства (на прикладі «Краснодонського м’ясокомбінату») та пошук методів підвищення його фінансової стійкості. Для досягнення поставленої мети необхідно вирішити наступні задачі: провести дослідження діяльності...
85655. Розробка комп’ютеризованої підсистеми управління матеріально-технічним забезпеченням на вугледобувного підприємстві (на прикладі СП шахти «Самсонівська-Західна» ВАТ «Краснодонвугілля») 1.34 MB
  У роботі проаналізовано процес прийняття рішень у сфері матеріально-технічного забезпечення на вугледобувному підприємстві на прикладі шахти «Самсонівська-Західна». Розроблена система підтримки прийняття рішень (СППР) у сфері матеріально-технічного забезпечення на основі OLAP-аналізу...
85657. Оцінка виробничого потенціалу ВАТ «Краснодонвугілля» 1020 KB
  Функціонування та розвиток паливно-енергетичного комплексу України в значній мірі зумовлений станом та розвитком вугільної промисловості. Прийняте без варіантне ствердження засноване на аналізі структури запасів органічного палива, де вугілля складає 95,4%, та не є іншим ніж тенденції світового видобутку...
85659. Розробка методів підвищення своєчасності виконання перевезень за рахунок формування раціонального парку рухомого складу 3.2 MB
  У звязку з цим необхідно вирішувати завдання оптимального планування перевезень вантажів в комерційній діяльності з пунктів відправлення в пункти призначення методами що дозволяють оптимізувати план по якомунебудь економічному показнику наприклад фінансових витрат або часу на перевезення вантажів. Головними завданнями автотранспортного підприємства є повне задоволення потреб народного господарства і населення в автомобільних перевезеннях виконання автомобільним транспортом планів перевезень вантажів регулярність пасажирського...
85660. Разработка системы анализа и прогнозирования технико-экономической деятельности предприятия 925 KB
  В данной работе рассматриваются теоретические аспекты особенностей прогнозирования и планирования технико-экономической деятельности предприятия. Главная идея - это автоматизация системы управления предприятия замена аналитического труда человека современной вычислительной техникой.
85661. Повышения финансового состояния предприятия с использованием автоматизированной системы управления на ГОАО шахты «Ореховская» г. Краснодона 393 KB
  Тяжёлое финансовое положение из-за неплатежей потребителей угольной продукции не даёт возможности коллективам объединений и шахт решать вопросы замены устаревшего горного оборудования новым, более производительным и менее энергоёмким, а также вопросы оплаты труда шахтёров в условиях роста цен на продукты...