Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

OOP6

.docx
Скачиваний:
10
Добавлен:
07.02.2016
Размер:
28.66 Кб
Скачать

Міністерство освіти і науки України

Запорізький національний технічний університет

Кафедра програмних засобів

Звіт

з лабораторної роботи №6

«Віртуальні функції»

Виконав

ст. гр. КНТ-423 В.В. Білевський

Прийняв

ст. викл. Н. О. Миронова

Запоріжжя, 2014

6.1Мета роботи: Навчитись використовувати віртуальних функцій при проектуванні спадкування в об’єктно-орієнтованих програмах

6.2 Завдання до роботи: Наданий такий клас:

class Base

{ public:

virtual void myname() { cout << "This is class Base" << endl; }

};

Від цього класу треба створити два похідних класу: DerA і DerB.

Від класів DerA і DerB шляхом множинного успадкування створити клас DerAB.

Перевизначити у кожному з створених класів функцію myname таким чином, щоб вона виводила на екран дійсне ім’я класу об’єкту, для якого вона викликається.

Для кожного з класів створеної ієрархії створити по одному об’єкту і для кожного з них викличте функцію myname.

Створіть масив із 4 покажчиків на базовий клас ієрархії. Для кожного з них створіть динамічний об’єкт, по одному для кожного з класів ієрархії. Запишіть виклик функції myname для кожного з динамічних об’єктів за допомогою покажчиків.

Поясніть дію функції mymain у всіх випадках.

6.3 Текст програми:

#include<iostream>

using namespace std;

class base{

public:

virtual void myname() { cout << "This is class Base" << endl;

}

~base(){cout<<"Destruktor base"<<endl;}

};

class DerA: public base{

public:

void myname(){cout<<"This is class DerA"<<endl;}

~DerA(){cout<<"destruktor DerA"<<endl;}

};

class DerB:public base{

public:

void myname(){

cout<<"this is class DerB"<<endl;}

~DerB(){cout<<"destruktor DerB"<<endl;}

};

int main(){

base obj1;

base *p;

DerA obj2;

DerB obj3;

p=&obj1;

p->myname();

p=&obj2;

p->myname();

p=&obj3;

p->myname();

return 0;

}

6.4 Знімки з єкрану:

Рисунок 6.1- Робота програми

Тут вы можете оставить комментарий к выбранному абзацу или сообщить об ошибке.

Оставленные комментарии видны всем.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]