Найти в Дзене
Путь к коду

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

Наследование является одним из основных понятий объектно-ориентированного программирования и позволяет создавать новые классы на основе уже существующих. В C++ наследование реализуется при помощи ключевого слова "class", за которым следует имя класса-предка, а затем ключевое слово "public" или "private" и имя нового класса.

Класс-предок (или базовый класс) определяет общие свойства и методы для нового класса, который является производным классом (или дочерним классом). Новый класс наследует все свойства и методы базового класса и может добавлять свои собственные свойства и методы.

Наследование в C++ может быть реализовано с использованием трех различных типов наследования:

  1. Public Inheritance (публичное наследование) - все публичные свойства и методы базового класса становятся публичными свойствами и методами производного класса. Защищенные и приватные свойства и методы базового класса не доступны в производном классе.
  2. Protected Inheritance (защищенное наследование) - все публичные и защищенные свойства и методы базового класса становятся защищенными свойствами и методами производного класса. Приватные свойства и методы базового класса не доступны в производном классе.
  3. Private Inheritance (приватное наследование) - все публичные и защищенные свойства и методы базового класса становятся приватными свойствами и методами производного класса. Приватные свойства и методы базового класса не доступны в производном классе.

Для реализации наследования в C++ используются следующие операторы:

  1. Ключевое слово "class", за которым следует имя базового класса.
  2. Оператор ":" (двоеточие), который указывает на наследование.
  3. Ключевые слова "public", "protected" или "private", которые определяют вид наследования.

Пример наследования в C++:

-2
-3

В этом примере класс "Rectangle" является производным классом от класса "Shape". Класс "Rectangle" наследует свойства "width" и "height" от класса "Shape" и добавляет метод "area()", который возвращает площадь прямоугольника.

Обратите внимание, что свойства "width" и "height" объявлены в базовом классе "Shape" как защищенные (protected), поэтому они не могут быть доступны напрямую из объекта производного класса "Rectangle". Однако метод "area()" может использовать эти свойства, так как он вызывается в контексте производного класса.