Темы Разделы Интересы Top 20
 |
| 1 | Недавно мне задали вопрос: как бы я реализовал механизм виртуальных функций на языке C?
Поначалу я понятия не имел, как это можно сделать: ведь C не является языком объектно-ориентированного программирования, и здесь нет такого понятия, как наследование. Но поскольку у меня уже было немного опыта с C, и я знал, как работают виртуальные функции, я подумал, что должен быть способ сымитировать поведение виртуальных функций, используя структуры (struct).
Краткое пояснение для тех, кто не знает, что такое виртуальные функции:
Виртуальная функция — это функция, которая может быть переопределена классом-наследником, для того чтобы тот имел свою, отличающуюся, реализацию. В языке C++ используется такой механизм, как таблица виртуальных функций
(кратко vtable) для того, чтобы поддерживать связывание на этапе выполнения программы. Виртуальная таблица — статический массив, который хранит для каждой виртуальной функции указатель на ближайшую в иерархии наследования реализацию этой функции. Ближайшая в иерархии реализация определяется во время выполнения посредством извлечения адреса функции из таблицы методов объекта.
Давайте теперь посмотрим на простой пример использования виртуальных функций в C++
Читать дальше → habrahabr.ru » | | 2 | Резервное копирование базы данных — это такая штука, которую вечно приходится настраивать для уже работающих проектов прямо на «живых» production-серверах.
Подобная ситуация легко объяснима. В самом начале любой проект еще пуст и там просто нечего копировать. В фазе бурного развития головы немногочисленных разработчиков заняты исключительно прикручиванием фишек и рюшек, а также фиксом критических багов с дедлайном «позавчера». И только когда проект «взлетит», приходит осознание, что главная ценность системы — это накопленная база данных, и её сбой станет катастрофой.
Эта обзорная статья — для тех, чьи проекты уже достигли этой точки, но жареный петух ещё не клюнул.
Читать дальше → habrahabr.ru » | | 3 | Предистория
Заказал я недавно одну вещицу из Англии к себе в родной Санкт-Петербург. Посылка по территории России шла EMS-отправлением. И каким же было мое удивление, когда я обнаружил, что по выданному мне трек-номеру (идентификатор отправления) я не могу отслеживать состояние посылки в автоматическом режиме. Обладая весьма нетерпеливым характером, я буквально каждое утро начинал с проверки состояния своей посылки. И еще больше огорчался, когда понимал, что она все там же, где и была 5 дней назад. Немного поразмыслив я решил, что это ужасное упущение, и решил исправить ситуацию своими силами.
Читать дальше → habrahabr.ru » | | 4 |  Любите кататься? Особенно ночью? Но вас останавливает отсутствие подходящих трасс и опасение, что даже если вас и заметит ночной водитель, особого внимания на вас он не обратит, вмяв в ближайший столб?
Возьмите с собой велосипедную дорожку — и правда всегда будет на вашей стороне. Light Lane — концепт от Алекса Ти (Alex Tee) и Эвана Ганта (Evan Gant). Представляет собой прибор, крепящийся к багажнику или велосипедному седлу и направленно освещающий, наподобие лазерной указки, участок дороги за велосипедом. habrahabr.ru » |
|
| |
|