
Лабораторные работы / лабы ооп / ооп3
.docxФедеральное государственное автономное образовательное учреждение высшего образования
«ОМСКИЙ ГОСУДАРСТВЕННЫЙ
ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»
Кафедра Информатика и вычислительная техника
Лабораторная работа ООП №3
по дисциплине «Программирование»
на тему:
«НАСЛЕДОВАНИЕ»
Выполнил ст.гр. ИВТ-234
Шкутова А.В.
Проверила
Дорошенко М.С
Омск 2024
Организовать программу осуществляющую иерархию порождения одного класса из базового, по типу "компьютер"->"периферийное устройство"->"клавиатура".
#include <iostream>
#include <string>
using namespace std;
class Computer { // Объявление класса "Компьютер"
private:
string model; // Приватное поле для хранения модели компьютера
string manufacturer; // Приватное поле для хранения производителя компьютера
public:
Computer(string mdl, string mfr) : model(mdl), manufacturer(mfr) {} // Конструктор класса с параметрами
void displayInfo() { // Метод класса для вывода информации о компьютере
cout << "Компьютерная модель: " << model << endl; // Вывод модели компьютера
cout << "Производитель: " << manufacturer << endl; // Вывод производителя компьютера
}
};
class PeripheralDevice : public Computer { // Класс "Периферийное устройство" наследует от класса "Компьютер"
private:
string type; // Приватное поле для хранения типа периферийного устройства
public:
PeripheralDevice(string mdl, string mfr, string tp) : Computer(mdl, mfr), type(tp) {} // Конструктор класса с параметрами
void displayInfo() { // Метод класса для вывода информации о периферийном устройстве
Computer::displayInfo(); // Вызов метода отображения информации о компьютере
cout << "Type: " << type << endl; // Вывод типа периферийного устройства
}
};
class Keyboard : public PeripheralDevice { // Класс "Клавиатура" наследует от класса "Периферийное устройство"
private:
int numKeys; // Приватное поле для хранения количества клавиш
public:
Keyboard(string mdl, string mfr, string tp, int keys) : PeripheralDevice(mdl, mfr, tp), numKeys(keys) {} // Конструктор класса с параметрами
void displayInfo() { // Метод класса для вывода информации о клавиатуре
PeripheralDevice::displayInfo(); // Вызов метода отображения информации о периферийном устройстве
cout << "Количество клавиш: " << numKeys << endl; // Вывод количества клавиш
}
};
int main() {
setlocale(LC_ALL, "RUS");
Keyboard myKeyboard("Механическая клавиатура", "Logitech", "Проводная", 104); // Создание объекта класса "Клавиатура"
myKeyboard.displayInfo(); // Вызов метода отображения информации о клавиатуре
return 0;
}