Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Книга C++.doc
Скачиваний:
24
Добавлен:
10.11.2019
Размер:
2.48 Mб
Скачать

Пример множественного наследования

#include <iostream.h>

#include <string.h>

class Roga{ // Класс "рога"

protected:

char color[25];

int wes;

public:

Roga(){

strcpy(color,"Dirty");

wes=20;

}

Roga(char *c,int w){

strcpy(color,c);

wes=w;

}

};

class Kopyta{ // Класс "копыта"

protected:

char forma[25];

int razmer;

public:

Kopyta(){

strcpy(forma,"Big");

razmer=10;

}

Kopyta(char *c,int w){

strcpy(forma,c);

razmer=w;

}

};

class Los:public Roga,public Kopyta{

// Класс "Лось", производный от

// классов "рога" и "копыта"

public:

char name[255];

Los(char *c){

strcpy(name,c);

}

void DisplayInfo(){ // Функция может обращаться к

// элементам обоих базовых классов

cout<<"Name "<<name<<endl;

cout<<"Forma "<<forma<<endl;

cout<<"Color "<<color<<endl;

cout<<"Wes rogov "<<wes<<endl;

cout<<"Razmer kopyt "<<razmer<<endl;

}

};

void main()

{

Los l("Vasya");

l.DisplayInfo();

}

Домашнее задание

  1. Создайте класс Student, который будет содержать информацию о студенте. С помощью механизма наследования, реализуйте класс Aspirant (аспирант - студент, который готовится к защите кандидатской работы) производный от Student.

  2. Создайте класс Passport (паспорт), который будет содержать паспортную информацию о гражданине Украниы. С помощью механизма наследования, реализуйте класс ForeignPassport (загран.паспорт) производный от Passport. Напомним, что загран.паспорт содержит помимо паспортных данных, также данные о визах, номер загран.паспорта.

  3. Используя понятие множественного наследования, разработайте класс "Окружность, вписанная в квадрат".

  4. Придумайте три примера объектов, для реализации которых логично было бы использовать множественное наследование. Для каждого примера опишите интерфейс класса и напишите небольшую программу-пример с использованием объекта такого типа (с результатами).

  5. Посмотрите внимательно на экран. Что Вы видите? Красивые окошки, кнопочки, пиктограммки и т.п., все вместе они образуют графический интерфейс ОС Windows. Какие объекты Вы можете выделить? Выберите любые три и опишите, какие по Вашему мнению присущи им атрибуты и методы.

  6. В одном из прошлых домашних заданий Вы реализовывали класс Стек. Другой наиболее широко используемой структурой данных в программировании является очередь. Элементы добавляются в очередь с одной стороны, а удаляются с другой. Такая структура известна под названием FIFO (first in, first out - первым вошел, первым вышел). Очередь - это как очередь в театр: Вы становитесь в конец очереди и уходите из очереди в ее начале. Реализуйте базовые операции работы с очередями, такие как добавить элемент в очередь, удалить элемент из очереди, определить, содержит ли очередь элементы, вывести элементы очереди на экран.

Дополнительное задание

  1. Наряду с простыми очередями существуют очереди с приоритетом, т.е. очереди, элементам которых присвоен приоритет. Когда элемент проталкивается в такую очередь, он помещается после всех элементов с высшим или равным приоритетом и перед всеми элементами с более низким приоритетом. Реализуйте класс "очередь с приоритетом".