вторник, 7 мая 2013 г.

Виртуальные функции - низкоуровневый взгляд

Введение

Виртуальные функции уже давно стали неотъемлемой частью объектно-ориентированного программирования. Все учебники по С++ содержат утверждение, что C++ держится на трех китах: инкапсуляции, наследовании и полиморфизме. Каждое из этих понятий содержит тонкости, которые не описаны в учебниках по C++. Эта статья понемногу коснется каждого из них, но основное внимание будет уделено виртуальным функциям.
К сожалению, полиморфизм - эта та область, которая вызывает наибольшие трудности в освоении у начинающих. И даже успешно начав применять знания на практике – теневая сторона и особенности низкоуровневой реализации остаются скрытыми. Между тем сегодня сложно представить проект, в котором бы не использовался полиморфизм. Технология COM полностью построена на абстрактных интерфейсах. Плагины для многих популярных программ просто немыслимы без виртуальных функций.
Данная статья дает ответы на многие вопросы. Понимание низкоуровневых основ позволяет отбросить мишуру определений и многочисленные параграфы стандарта языка. Я хочу поблагодарить всех читателей, которые сообщили о неточностях в предыдущей редакции статьи. Особая благодарность участникам форума RSDN за конструктивные замечания и предложения по улучшению материала. Всем огромное спасибо!

пятница, 7 мая 2010 г.

Детское автокресло

Появилась задача выбрать детское автокресло для моей замечательной доченьки. Я решил
делать выбор исходя не из того, чтобы откосить от оплаты штрафов гаишникам за неправильную перевозку детей, а ради безопасности самого дорогого (хотя даже будь машина и самая безопасная, в данном случае, этой самой безопасности мало быть не может).
Итак, в процессе выбора детского автокресла я остановлся на следующих вариантах:

1) Inglesina "Milli Miglia" ( цена по городу 8300-11300 рублей)
2) Britax "Evola 123 plus" (12200 — 13300 руб)
3) Kiddy Comfort Pro (16 000 руб)
4) Kiddy Life Plus (14500 руб)

пятница, 19 марта 2010 г.

Кеширование в CodeIgniter

Думаю не нужно рассказывать, зачем бывает нужно кеширование. Вопрос в том как его сделать. Материал поста является своеобразным пересказом штатного мануала и человеку знакомому с ним ничего принципиально нового не скажет.
В Codeigniter я знаю два штатных механизма кеширования. Это кеширование выдаваемой страницы и кеширование запроса. Эти кеши не конкурируют друг с другом а скорее взаимодополняют друг друга

суббота, 16 января 2010 г.

Загадка на собеседовании для программиста

Решил написать небольшую программку-задачку для программиста на C.
Кто сможет объяснить в результате чего программа делает столь странный вывод - молодец!