Аналогия взаимодействия программы и функции
Если во время рисования ломается карандаш, приходится прекратить рисование и заточить карандаш. После этого можно вернуться к тому месту рисунка, на котором произошла остановка. Когда программа нуждается в выполнении некоторой вспомогательной операции, она обращается к функции, ответственной за выполнение этой операции, после чего продолжает свою работу с того места, где была вызвана функция.
Хороший и плохой комментарии
Хороший комментарий объясняет назначение данного блока программы или сообщает, почему здесь используются именно эти операторы. Плохой комментарий констатирует то, что делается в данной строке программы.
Либерти, Джесс, Хорват, Дэвид “Освой самостоятельно С++ за 24 часа”, 4-е издание. : Пер. с англ. — М.: Издательский дом “Вильямс”, 2007. — 448 с.
Аналогия между полиморфным базовым классом и подрядчиком
Лучше рассматривать полиморфный базовый класс как подрядчика. Базовый класс дает определенные обещания пользователям его интерфейса: сюда входят твердые синтаксические гарантии вызова определенных функций-членов с определенными типами аргументов, а также обещания, которые сложнее проверить, касающиеся того, что на самом деле произойдет при вызове конкретной функции-члена. Конкретные производные классы <...> представляют собой субподрядчиков, которые реализуют договор между классом Option и его клиентами.
Stephen C. Dewhurst “C++ Common Knowledge”, Addison-Wesley Professional, 2005, 272 p.
NullPointerException
Понравилось объяснение коллеги по поводу того, что же такое NullPointerException в Java: - Ну вот, предположим, ты приходишь к маме и говоришь: "Мама, мама, можно я заведу щеночка?". А мамы нет. Возможно она умерла 10 лет назад. А может её никогда и не существовало. И в этот момент возникает NullPointerException.
Комментарии
comments powered by Disqus