Программирование на C и C++

Онлайн справочник программиста на C и C++

Наследование, виртуальные функции и полиморфизм

Как известно, наследование и полиморфизм лежат в основе объектно-ориентированного про­граммирования. С помощью наследования можно создать общий класс, определяющий общие черты совокупности объектов. Этот класс может наследоваться другими более специфическими классами, каждый из которых добавляет что-нибудь свое.

Есть еще одна причина, по которой наследованию придается такая важность: с его помощью поддерживается полиморфизм во время выполнения программы. С помощью полиморфизма ре­ализуется принцип «один интерфейс — множество методов».

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