Объектно-ориентированное программирование основано на трех важнейших принципах, придающих объектам новые свойства. Этими принципами являются инкапсуляция, наследование и полиморфизм. Полиморфизм — реализация задач одной и той же идеи разными способами;
Наследование — способность объекта или класса базироваться на другом объекте или классе.
Инкапсуляция — размещение одного объекта или класса внутри другого для разграничения доступа к ним.
Существуют два механизма повторного использования кода – наследование и композиция. Композиция — простейший механизм для создания нового класса путем объединения нескольких объектов существующих классов в единое целое. Имеются два типа отношений, как и когда применять приемы многократного использования кода (быть экземпляром и включать себя как часть.). Отношение быть экземпляром имеет место между двумя понятиями, если первое является уточнением второго. Наследование удовлетворяет этому отношению или точнее стремится удовлетворять. Отношение включать как часть имеет место, когда второе понятие является компонентой первого, но оба эти понятия не совпадают ни каким образом. Для реализации этого отношения используется композиция.
Структура проекта: главный модуль приложения (.cpp) и модуль формы (.h).
Header guards – защита от множественного подключения заголовочного файла (#pragma once).