Объектно-ориентированное программирование (ООП) – основано на объектно-ориентированном подходе, базирующемся на введении абстракции «объект». Данные и поведение в ООП жестко связаны, они представлены в виде классов, экземпляры которых объекты. Например, некоторая формула может иметь диапазон допустимых значений, и на этих значениях могут быть определены, например, такие операции, как сложение и умножение. Вычисления в ООП рассматриваются как модель поведения.
Все объекты в ООП отвечают за свое поведение. Поведение проявляется как реакция на внешние раздражители (события). Каждый объект обладает определенным перечнем событий, на которые определена его реакция (черта поведения). Сведения о событии передаются сообщением, получаемым через интерфейс класса.
Внутренняя сложность объекта скрыта от пользователя, что реализуется как ограничение на доступ к деталям реализации класса. Такая конструкция класса обеспечивается механизмом инкапсуляции, определенным в ООП. Классы в ООП образуют иерархическую структуру, на которой определен механизм наследования.
Наследование предполагает возможность построения новых (производных) классов из существующих, называемых базовыми. При этом повторно используется уже имеющийся программный код.
Наиболее мощным механизмом, определенным в ООП, является полиморфизм, предполагающий множественность форм реализации функции или оператора. Соответствующий код функции в программе на С++ вызывается на основе ее сигнатуры, определяемой списком типов аргументов в перечне параметров функции. При иерархическом наследовании используются также виртуальные функции-члены класса, которые позволяют выбирать соответствующий код реализации во время выполнения программы.