Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Віртуальні функції». Рисунок 6.1- Робота програми

Поиск

 

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

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

 

 

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

 

Звіт

з лабораторної роботи №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 Знімки з єкрану:

 



Поделиться:


Последнее изменение этой страницы: 2024-06-17; просмотров: 6; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.118.195.30 (0.008 с.)