Создать класс - данные - абстрактный базовый класс. Создать производные классы - данные типа сигнал, данные типа результат обработки и вспомогательные данные. Все данные имеют функции отображения, сохранения и обработки.
Вариант 14.
Задание 1.
Создать абстрактный базовый класс с виртуальной функцией - корни уравнения. Создать производные классы: класс линейных уравнений и класс квадратных уравнений. Определить функцию вычисления корней уравнений.
Задание 2.
Создать класс - данные - абстрактный базовый класс. Создать производные классы - данные типа сигнал, данные типа результат обработки и вспомогательные данные. Все данные имеют функции отображения, сохранения и обработки.
Виртуальные функции и полиморфизм
План
- Виртуальные функции и полиморфические кластеры
- Проверка ошибок при использовании виртуальных функций
- Техническая реализация виртуальных функций
- Абстрактные базовые классы
- Преимущества позднего связывания
Термин полиморфический в словаре определен, как “имеющий, принимающий или встречающийся в различных формах, символах или стилях”. В применении к объектно-ориентированным языкам, полиморфизм рассматривается как существенное свойство, позволяющее некоторое сообщение передавать различными путями. Следовательно, сообщение может иметь множество различных реализаций.
До этого связывание сообщения, посылаемого объекту, с конкретным методом (функцией-членом) осуществлялось на этапе компиляции (т.е. до запуска программы). Такое раннее связывание во многих случаях желательно, так как это позволяет получить наиболее оптимальный код. Кроме раннего связывания компилятор С++ выполняет проверку типа, гарантируя, что каждому объекту послано законное сообщение. В действительности, объектно-ориентированный язык предлагает программисту выбор между проверкой типов и поздним связыванием.
Позднее связывание позволяет ассоциировать сообщение с методом во время выполнения программы. Программист определяет специфические действия, которые должен выполнять объект, получив сообщение. Во время выполнения, программа интерпретирует эти действия и связывает сообщение с соответствующим методом. Просмотр списка методов и выбор нужного возлагается не на программиста, а на программу. Это позволяет писать более надежный код и облегчает его использование и модификацию.