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);

};


 

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

33305. Обжалование актов налоговых органов и действий или бездействия их должностных лиц 28 KB
  В случае обжалования актов налоговых органов действий их должностных лиц в суд по заявлению налогоплательщика плательщика сборов налогового агента исполнение обжалуемых актов совершение обжалуемых действий могут быть приостановлены судом в порядке установленном соответствующим процессуальным законодательством Российской Федерации. В случае обжалования актов налоговых органов действий их должностных лиц в вышестоящий налоговый орган по заявлению налогоплательщика плательщика сборов налогового агента исполнение обжалуемых актов...
33306. Пеня: сферы его применения и порядок расчета суммы платежа по нему с организацией и с банков 27 KB
  Сумма соответствующих пеней уплачивается помимо причитающихся к уплате сумм налога или сбора и независимо от применения других мер обеспечения исполнения обязанности по уплате налога или сбора а также мер ответственности за нарушение законодательства о налогах и сборах. Пеня начисляется за каждый календарный день просрочки исполнения обязанности по уплате налога или сбора начиная со следующего за установленным законодательством о налогах и сборах дня уплаты налога или сбора. Подача заявления о предоставлении отсрочки рассрочки или...
33307. Регистрация лиц (юридических, физических), их постановка на учет в налоговых органах и присвоение ИНН. 29.5 KB
  Регистрация лиц юридических физических их постановка на учет в налоговых органах и присвоение ИНН. Учет организаций и физических лиц В целях проведения налогового контроля налогоплательщики подлежат постановке на учет в налоговых органах соответственно по месту нахождения организации месту нахождения ее обособленных подразделений месту жительства физического лица а также по месту нахождения принадлежащего им недвижимого имущества и транспортных средств и по иным основаниям предусмотренным настоящим Кодексом. Постановка на учет...
33308. Налоговая декларация и ее значение и основные разделы 26.5 KB
  В каждой налоговой декларации указывается ИНН присвоенный налогоплательщику. Форма налоговой декларации если она не утверждена законодательством о налогах и сборах разрабатывается МНС РФ. Основные федеральные региональные и местные налоги имеют инструкции по заполнению налоговой декларации издаваемые МНС по согласованию с МФ РФ. При обнаружении налогоплательщиком в поданной им налоговой декларации ошибок приводящих к занижению суммы налога подлежащей уплате он обязан внести необходимые изменения в налоговую декларацию.
33309. Формы изменения срока уплаты налога 22 KB
  Формы изменения срока уплаты налога Это перенос уплаты налога на более поздний срок. Уплаты единовремно; 2. уплаты поэтапно; 3. уплаты единовремно; 4.
33310. Полное и частичное освобождение от налоговых обязательств. Налоговые каникулы 25 KB
  Окладная сумма валовой налог это результат умножения количества единиц налогообложения входящих в налоговую базу на ставку ставки налога. Освобождения от уплаты налога можно разделить на виды по формам предоставления льготы. Снижение ставки налога. согласно Закону о налоге на прибыль предприятий и организаций ставка налога понижается на 50 для предприятий в штате которых 50 и более составляют пенсионеры и инвалиды.
33311. Элементы акцизного налогообложения и их характеристика 33 KB
  Основными объектами налогообложения признаются операции по реализация на территории РФ произведенной подакцизной продукции ее производителями в том числе передача прав собственности и ее использование при натуральной оплате реализация алкогольной продукции с акцизных складов ввоз подакцизных товаров на таможенную территорию РФ а также ряд иных операций по передаче и продаже подакцизных товаров и подакцизного минерального сырья. При этом к производству подакцизных товаров приравнивается их розлив а также любые виды смешения товаров в...
33312. Элементы налога на добавленную стоимость и их характеристика 25 KB
  Налогоплательщиками НДС признаются: организации; индивидуальные предприниматели; лица признаваемые налогоплательщиками НДС в связи с перемещением товаров через таможенную границу РФ которые определяются в соответствии с Таможенным кодексом РФ. Объектом налогообложения признаются следующие операции: 1 реализация товаров работ услуг на территории РФ в том числе реализация предметов залога и передача товаров результатов выполненных работ оказание услуг по соглашению о предоставлении отступного или новации а также передача...
33313. Элементы налога на прибыль и их характеристика 32 KB
  Для иных иностранных организаций доход полученный от источников в РФ в том числе: дивиденды выплаченные иноорганизациями; процентный доход от долговых обязательств; доходы от реализации акций и др. Доходы делятся на две группы: 1. Доходы от реализации товаров выручка от реализации товаров как собственного производства так и ранее приобретенных выручка от реализации имущества включая ценные бумаги и имущественных прав. Внереализационные доходы доходы не связанные с основной производственной деятельностью по производству и...