Практическое занятие №5 Тема: Множественное наследование . Виртуальное наследование Задание №1 (общее -1 балл) Построить граф наследования, отображающий последовательность, в которой вызываются конструкторы #include class A1 { public: A1(){std::cout << "A1 ";} }; class A2 { public: A2(){std::cout << "A2 ";} }; class B1: public A1 { public: B1(){std::cout << "B1 ";} }; class B2: public A2 { public: B2(){std::cout << "B2 ";} }; class C: public B1, public B2 { public: C(){std::cout << "C ";} }; class E: public C { public: E(){std::cout << "E ";} }; int main( ) {E *e = new E(); return 0; } На основе листинга получаем следующий граф Получилось – “A1 B1 A2 B2 C E” Задание №2. (общее-1 балл) Построить граф наследования, отображающий последовательность, в которой вызываются конструкторы. Задание №3. (общее-1 балл) Выполнить задание № 2 , используя виртуальное наследование. Сравнить результаты п.2 и п.3 , сделать выводы и отразить их в отчете.. Задание №4. (общее-2 балла). Построить граф наследования, отображающий последовательность, в которой вызываются конструкторы, используя невиртуальное наследование и виртуальное наследование. Задание №5. Ответить на контрольный вопрос. Понятие композиции в С++. Виды одиночного наследования в С++ Множественное наследование в С++. Виртуальное наследование в С++. Преимущества виртуального наследования. Недостатки виртуального наследования. Разрешение конфликта имен при множественном наследовании. Как исключить многократное включение объекта базового класса в объект производного при множественном наследовании. Дружественнось в С++. Синтаксические особенности. Правила дружественности. Виды наследования и особенности использования. Множественное наследование. Использование одинаковых имен. Виртуальное наследование, необходимость, синтаксические особенности. Синтаксис внешнего наследования. Приведите пример. Синтаксис защищенного наследования. Приведите пример. Синтаксис внутреннего наследования. Приведите пример. 1.Задание №6 Оформить отчет и поместить на dl.nure. Отчет должен содержать: 1.Номер и условие задания. 2. Листитнг программы и результат выполнения каждого задания. . 3. Выводы по каждому заданию. 4. Ответ на контрольный вопрос. |