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

Lab23

.docx
Скачиваний:
5
Добавлен:
30.06.2018
Размер:
22.27 Кб
Скачать

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

(№ 9 по списку и инд.вариант t= 9)

Студента группы ИТ 14-1

Красовский Абхай Владленович

Использование виртуальных функций и указателей для работы с объектами классов

Цель работы: выучить и научится использовать виртуальные функции при создании иерархии классов при простой наследовании в языке C++, а так же указатели для работы с объектами классов

Ход работы

Соответственно к индивидуальному заданию лабораторной №22 разработать алгоритм работы с объектами базовых и производных классов с использованием указателей на базовый и производный класс.

Вариант

Базовый класс

Производный класс

Производный класс

Топливо

Нефть

Бензин

1.Код

#include <iostream>

#include <conio.h>

using namespace std;

class Fuel

{

protected:

int weight;

private:

int value;

public:

void setWeight(int w){weight = w;}

int getWeight(){return weight;}

void setValue(int v){value = v;}

int getValue(){return value;}

virtual void show(){cout << "Fuel" << endl;}

};

class Oil : public Fuel

{

private:

char* name;

public:

void setName(char* n){name = n;}

char* getName(){return name;}

virtual void show(){cout << "Oil" << endl;}

};

class Gasoline : public Fuel

{

private:

char* name;

public:

void setName(char* n){name = n;}

char* getName(){return name;}

virtual void show(){cout << "Gasoline" << endl;}

};

void main()

{

setlocale(LC_ALL, "Russian");

Oil a;

a.setName("Нефть");

a.setValue(65);

a.setWeight(3);

cout << a.getName() << endl;

cout << "Цена: " << a.getValue() << endl;

cout << "Вес: " << a.getWeight() << endl;

Gasoline b;

b.setName("Бензин");

b.setValue(16);

b.setWeight(6);

cout << b.getName() << endl;

cout << "Цена: " << b.getValue() << endl;

cout << "Вес: " << b.getWeight() << endl;

Fuel f;

Fuel *pf;

pf = &a;

pf->show();

pf = &b;

pf->show();

pf = &f;

pf->show();

_getch();

}

2.Результат

3.Вывод: выучил и научился использовать виртуальные функции при создании иерархии классов при простой наследовании в языке C++, а так же указатели для работы с объектами классов

Соседние файлы в предмете Объектно ориентированное программирование