Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

ЗАДАНИЕ 1 Конструкторы Класс Derived является производным public от классов Bse1 и Bse2

Работа добавлена на сайт samzan.net:


Рубанчик В. Б.

Лабораторная №9

Исследования механизма множественного наследования.

2/2

Исследование механизма множественного наследования

ЗАДАНИЕ 1 (Конструкторы)

Класс Derived является производным (public) от классов Base1 и Base2. Каждый из трех классов имеет по два конструктора, которые (кроме описанных ниже действий) выводят сообщение о вызове типа "Конструктор Base2 без параметров".

Класс Base1, имеет одно закрытое поле i целого типа. Первый конструктор не имеет параметров и обнуляет i. Второй имеет один параметр типа int, используемый для инициализации i произвольными значениями. Класс имеет две общедоступные интерфейсные функции void put(int) и int get(void), которые позволяют изменить или прочесть значение i.

Класс Base2, имеет одно закрытое поле - массив name из 20 элементов. Первый конструктор не имеет параметров и инициализирует поле name словом "Пусто". Второй имеет один параметр типа char*, используемый для инициализации name значениями символьных строк. Класс имеет две общедоступные интерфейсные функции void put(char*) и char* get(void), которые позволяют изменить или прочесть значение name.

Класс Derived имеет одно закрытое поле ch типа char. Первый конструктор не имеет параметров и присваивает ch значение 'V' (от void - пустой). Второй конструктор имеет три параметра типов char, char* и int, используемые для инициализации соответственно полей ch, name и i. Класс имеет две общедоступные интерфейсные функции void put(char) и char get(void), которые позволяют изменить или прочесть значение ch. Кроме того, в нем объявляется как дружественная операция вставки в поток вывода, которая выводит на экран значения i, name и ch.

  1.  В функции main описать переменную типа Derived без инициализации и вывести ее значение с помощью перегруженной операции вставки в поток. Выяснить порядок вызова конструкторов.
  2.  Описать другую переменную класса Derived, инициализировав ее явно некоторыми значениями. Вывести значение этой переменной на экран и проанализировать порядок вызова конструкторов.
  3.  В конструкторе класса Derived с параметрами изменить порядок вызова конструкторов базовых классов. Проверить, как это отразилось на работе программы и почему.
  4.  Изменить порядок наследования базовых классов в описании класса Derived и проверить, как это отразилось на работе программы.

 ЗАДАНИЕ 2 (Виртуальные базовые классы)

Задан базовый класс DomesticAnimal (домашнее животное), в котором определены три защищенных поля weight (вес), price (цена) и color (окраска). Класс снабжен конструктором без параметров и конструктором с тремя параметрами для инициализации полей трех класса. Кроме того определена функция print, выводящая значения полей и сообщение о принадлежности функции к классу DomesticAnimal.

Производными от этого класса (public) являются классы Cow (корова) и Buffalo (бык), в которых не определено новых полей.

Класс Beefalo (теленок) является производным (public) от Cow и Buffalo. Его конструктор инициализирует поля weight, price и color без передачи параметров своим базовым классам Cow и Buffalo.

Классы Cow, Buffalo и Beefalo имеют свои функции print, которые выводят сообщения о своей принадлежности к конкретному классу и выводят значения трех полей с помощью вызова print из DomesticAnimal.

  1.  Выявить и объяснить ошибки при компиляции, исправить программу.
  2.  В функции main описать переменные типа Cow и Beefalo (с инициализацией) и вызвать для них функцию print. Объяснить результаты.




1. Курсовая работа- Документальный контроль как форма таможенного контроля
2. Роль банков в рыночной экономике
3. Рациональное размещение грузов на складах
4. Вятский государственный гуманитарный университет Социальногуманитарный факультет Кафедра социально
5. Тема 1 Основные этапы развития экономической мысли
6. Ларри Бейнхарт Американский герой- ТИД Амфора; СПб
7. Військові фразеологізми
8. Works nd mom techer lbor nd science
9. Оренбургский государственный университет Кафедра гуманитарных и социальных дисциплин Расс
10. Строковый тип данных в языке Pascal
11. Понятие здесь следует рассматривать не как акт сознающего себя рассудка не как субъективный рассудок а как
12. Поэтика экспозиций в литературных памятниках Руси XII века
13. либо ни один вообще и предполагают что нет никакой опасности
14. Умер в изгнании в Манчестере 9 мая 1864 года 5 ПРЕДИСЛОВИЕ К ПЕРВОМУ ИЗДАНИЮ ПОСЛЕСЛОВИЕ КО ВТОРОМУ ИЗДАН
15. Реферат на тему- Технология обучения в школе С
16. Гипертекст
17. доклада выступления по материалам исследования Доклад это устный текст значительный по объему предста
18. Способ и устройство обнаружения аномалий в сетях
19. Лабораторная работа- Изучение приспособленности организма осьминога к среде обитания
20. темаРоссийская газета