Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Наличие нескольких прямых базовых классов называют множественным наследованием.

Поля перечисляются через запятую. Для каждого поля в скобках указывается инициализирующее значение, которое может быть выражением. | Выделение памяти для полей класса; | Конструктор по умолчанию. Определение, свойства, синтаксис объявления и пример использования. | Свойства деструкторов | Используются для получения непосредственного доступа извне к скрытым полям класса, то есть расширения интерфейса класса. | Object.print(); | Перегрузка стандартных операций. | Тип_возвращаемого_значения operator знак_операции | Перегрузка функций. | Наследование классов. |


Читайте также:
  1. Абсолютный экстремум функций нескольких переменных
  2. Автоматизация параллельного ведения учёта в нескольких стандартах.
  3. Амфотерными называются такие гидроксиды, которые способны отдавать в реакциях с другими соединениями как атомы (ионы) водорода, так и гидрокси-группы (анионы гидроксила).
  4. Бесконечно малые функции нескольких переменных
  5. В поселке пахло чем-то выпечным и садовыми цветами. Скорпиус плохо в них разбирался. Но ведь чтобы дарить цветы, не обязательно знать, как они называются.
  6. В) наличие перечисленных в документах приложений.
  7. Взаимные положения прямых, прямой и плоскости, двух плоскостей

Определения базовых классов должны предшествовать их использованию в качестве базовых. При множественном наследовании никакой класс не может больше одного раза использоваться в качестве непосредственного базового. Однако класс может больше одного раза быть непрямым базовым классом:

class X {...; f ();... };

class Y: public X {... };

class Z: public X {... };

class D: public Y, public Z {... };

В данном примере класс Х дважды опосредовано наследуется классом D. дублирование класса соответствует включению в производный объект нескольких объектов базового класса. В нашем примере существуют два объекта класса Х, и поэтому для устранения возможных неоднозначностей вне объектов класса D нужно обращаться к конкретному компоненту класса Х, используя полную квалификацию: D::Y::X::f() или D::Z::X::f(). Внутри объекта класса D обращения упрощаются Y::X::f() или Z::X::f(), но тоже содержат квалификацию.

Чтобы устранить дублирование объектов непрямого базового класса при множественном наследовании, этот базовый класс объявляют виртуальным. Для этого в списке базовых классов перед именем класса необходимо поместить ключевое слово virtual. Например, класс Х будет виртуальным базовым классом при таком описании:

class X {... f();... };

class Y: virtual public X {... };

class Z: virtual public X {... };

class D: public Y, public Z {... };


Дата добавления: 2015-10-02; просмотров: 68 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
При наследовании некоторые имена| При множественном наследовании один и тот же базовый класс может быть включен в производный класс одновременно несколько раз, причем и как виртуальный, и как не виртуальный.

mybiblioteka.su - 2015-2024 год. (0.006 сек.)