Что такое гибридное наследование в C++? Типы с примерами

Опубликовано: 2021-05-27

Мы часто используем термин «наследование» в контексте программирования. Это функция, практикуемая в программировании для наилучшего повторного использования кодов. Если вы вспомните концепцию «IS-A» в ООП (объектно-ориентированном программировании), вы обнаружите, что она основана на функции наследования. Реализация наследования поможет вам реализовать передовые идеи проектов на C++.

Оглавление

Что такое наследование?

В процессе Наследования объекты одного класса приобретают свойства и поведение другого класса. Здесь новый класс является производным от существующего базового класса. Производный класс-член обычно называется дочерним классом и членом базового класса родительского класса. После создания дочернего класса он наследует все свойства и методы родительского класса.

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

Наследование в С++

Часто в реальности программисту необходимо разработать объект, который должен:
1) обладает всеми качествами своего родителя и, кроме того,
2) в некоторых аспектах настойчивость особенная.

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

Технически ключевое слово «расширяет» используется для наследования класса. C++ использует символ двоеточия (" : ") для наследования от класса.

Виды наследства

Использование комбинации наследования и реализации различается в зависимости от цели, для которой создаются классы. В C++ доступны различные типы наследования, перечисленные ниже:

  • Одиночное наследование — это когда производный класс наследует свойства и поведение от одного базового класса. Пример: Класс A → Класс B.
  • Иерархическое наследование — это когда из одного базового класса создается более одного производного класса. Пример: Класс A → Класс B → Класс C.
  • Множественное наследование предназначено для получения класса из нескольких базовых классов. Здесь создаваемые программистами дочерние объекты будут сочетать аспекты характеристик и функций нескольких родительских классов. Эти объекты следуют своей иерархии базовых классов.
  • Многоуровневое наследование — это когда дочерний класс является производным от другого производного класса. Эта функция объединяет аспекты нескольких классов и следует их иерархии.
  • Гибридное наследование — это гетерогенная функция использования множественного наследования. Здесь дочерний класс является производным от одной или нескольких комбинаций одиночного, иерархического и многоуровневого наследования. Это наследование используется в программах для смешивания различных типов наследования; например, при смешивании одного наследования с несколькими наследованиями или, может быть, ситуации, когда несколько наследований смешиваются в рамках одной программы.

Простой пример

Здесь класс B и класс C являются производными от базового класса, класса A.

Иерархическая классификация автомобилей показывает два класса. И «Бензиновые автомобили», и «Электромобили» являются производными от базового класса «Автомобили».

Гибридное наследование в C++

Могут быть ситуации, когда нам нужно применить два или более типа наследования в сочетании для разработки программы. Когда программа включает более одного типа наследования, это называется гибридным наследованием.

Гибридное наследование представляет собой комбинацию простого множественного наследования и иерархического наследования. Обычно при множественном наследовании класс является производным от двух классов, где один из родительских классов также является производным классом, а не базовым классом.

Гибридное наследование в C++ — это наследование, при котором класс является производным от более чем одной формы или комбинации любого наследования. Гибридное наследование в C++ также называется многопутевым наследованием, когда один производный класс может наследовать свойства базового класса по разным путям. Иногда также называется многолучевым наследованием. Например, это может быть достигнуто сочетанием многоуровневого и иерархического наследования.

Короче говоря, гибридное наследование представляет собой комбинацию двух или более типов наследования. Например, реализуя одно- и многоуровневое наследование в одной и той же программе.

Блок-схема гибридного наследования

На диаграмме представлена ​​гибридная комбинация двух наследств; одиночное наследование и множественное наследование. Здесь при одиночном наследовании класс B является производным от класса A. Точно так же при множественном наследовании класс D наследуется от нескольких классов. Здесь класс B и класс C. Итак, сочетание одиночного наследования и множественного наследования образует гибридное наследование.

Гибридное наследование применимо в сценариях, где нам необходимо применить более одного наследования в программе.

Синтаксис гибридного наследования в C++

Типичный синтаксис и семантика гибридного наследования в C++ будут такими, как показано ниже:

Примеры гибридного наследования в C++

Пример 1: одиночное + множественное наследование

Давайте посмотрим, как реализовано одиночное и множественное наследование.

Каждый блок на этой диаграмме представляет класс, а соответствующая стрелка — наследование класса.

Пример 2: одиночное + многоуровневое наследование

Мы также можем реализовать другие типы наследования для создания гибридного наследования.

Рассмотрим пример в реальном времени .

Мы получаем подкласс автомобиля от класса Vehicle. Другой класс характеризует Racing. Когда мы получим окончательный объект как из класса Car, так и из класса Racing, он даст комбинированный результат. Это производное от Ferrari – гоночный автомобиль.

Вот простая программа, иллюстрирующая концепцию гибридного наследования в C++ .

Пример кода

Выход

Изучайте онлайн -курсы по разработке программного обеспечения в лучших университетах мира. Участвуйте в программах Executive PG, Advanced Certificate Programs или Master Programs, чтобы ускорить свою карьеру.

Заключение

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

Мы надеемся, что у вас будет отличная возможность научиться выполнять эти проекты на C++. Если вы хотите узнать больше и нуждаетесь в наставничестве от отраслевых экспертов, ознакомьтесь с программой Executive PG upGrad & IIIT Banglore в области разработки программного обеспечения с полным стеком .

Что такое наследование в объектно-ориентированном программировании?

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

Каковы 3 области наследования в C++?

Сферы наследования в C++ бывают закрытыми, защищенными и общедоступными. При закрытом наследовании один класс наследуется от другого класса, но доступ к производному классу вне класса невозможен. Эти типы наследования можно использовать только в том случае, если доступ к базовому классу вне класса не предполагается. Защищенное наследование используется, когда доступ к базовому классу не предполагается вне класса, а предназначен для доступа вне класса. Публичное наследование используется, когда доступ к базовому классу предполагается вне класса.

Что такое множественное наследование в C++?

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