Конгер Д.
Физика для разработчиков компьютерных игр
стр. 480

В каждом из этих операторов объявляется переменная типа vec-tor_3d. Но в первом операторе подразумевается класс из пространства имен pmframework, то есть из библиотеки физического моделирования, а во втором - из пространства имен a_graphics_lib, то есть из библиотеки для работы с графикой. Хотя имена классов и совпадают, это разные классы из разных пространств имен.

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

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

Классы, от которых ведется наследование, называются базовыми (base) или родительскими (parent) классами. Классы-наследники называются производными (derived) классами или классами-/юиголгкалш. Классы-потомки наследуют все элементы данных и методы родительских классов. Собственно говоря, в большинстве реализаций компиляторов классы-потомки содержат в себе копии родительских классов.

Чтобы унаследовать класс, нужно указать имя родительского класса в определении класса-потомка. Пример наследования класса приведен в листинге В.6.

В листинге В.6 определен класс point_3d. Этот класс является потомком класса point, который мы рассматривали выше. Наследование указано в строке 1, после двоеточия. Заметьте, что в классе point_3d класс point унаследован как public. Это значит, что если в программе создается объект класса point_3d, то для этого объекта можно будет вызывать методы класса point. Как это сделать, вы узнаете немного позже.

В классе point_3d объявлен только один элемент данных. Поскольку он является потомком класса point, в нем содержатся и все элементы данных класса point. Поэтому на самом деле в классе point_3d три элемента данных.

Кроме элементов данных, класс point_3d унаследовал у класса point и все его методы. Поэтому класс point_3d содержит не только методы, перечисленные в листинге В.6, но и методы из листинга В.З.

Конструкторы класса point_3d немного отличаются от обычных конструкторов из-за использования наследования. В строках 14-17 листинга В.6 показан конструктор класса В.6, не принимающий параметров. Это так называемый конструктор по умолчанию. Он вызывает такой же конструктор класса point, который проинициализирует элементы данных х и у. Конструктор класса point_3d проинициализирует элемент z.



Новости
Новый ролик Fallout 76 посвятили совместной работе
Компания Bethesda опубликовала новый ролик Fallout 76, продолжающий серию обучающих видео «Время приключений».
Battle for Azeroth: до 120-го уровня добрались за пять часов
Первый в мире игрок 120-го уровня появился уже через четыре с лишним часа после открытия аддона.