Advertisement
Viktor_Profa

Лабораторна робота №6

Oct 27th, 2024
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.45 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. using namespace std;
  4.  
  5. // Базовий клас "Електронний_пристрій"
  6. class ElectronicDevice {
  7. protected:
  8.     string deviceType; // Тип пристрою, наприклад, "Смартфон", "Телевізор"
  9.     int batteryCapacity; // Ємність батареї
  10.  
  11. public:
  12.     // Конструктор за замовчуванням
  13.     ElectronicDevice() : deviceType("Невідомий"), batteryCapacity(0) {}
  14.  
  15.     // Конструктор з параметрами
  16.     ElectronicDevice(string type, int capacity) : deviceType(type), batteryCapacity(capacity) {}
  17.  
  18.     // Методи для перегляду і зміни значень
  19.     string getDeviceType() const { return deviceType; }
  20.     void setDeviceType(string type) { deviceType = type; }
  21.  
  22.     int getBatteryCapacity() const { return batteryCapacity; }
  23.     void setBatteryCapacity(int capacity) { batteryCapacity = capacity; }
  24.  
  25.     // Метод для виводу інформації про пристрій
  26.     virtual void show() const {
  27.         cout << "Тип пристрою: " << deviceType << ", Ємність батареї: " << batteryCapacity << " мАг" << endl;
  28.     }
  29. };
  30.  
  31. // Базовий клас "Виробник"
  32. class Manufacturer {
  33. protected:
  34.     string manufacturerName; // Назва виробника
  35.     int releaseYear; // Рік випуску
  36.  
  37. public:
  38.     // Конструктор за замовчуванням
  39.     Manufacturer() : manufacturerName("Невідомий"), releaseYear(0) {}
  40.  
  41.     // Конструктор з параметрами
  42.     Manufacturer(string name, int year) : manufacturerName(name), releaseYear(year) {}
  43.  
  44.     // Методи для перегляду і зміни значень
  45.     string getManufacturerName() const { return manufacturerName; }
  46.     void setManufacturerName(string name) { manufacturerName = name; }
  47.  
  48.     int getReleaseYear() const { return releaseYear; }
  49.     void setReleaseYear(int year) { releaseYear = year; }
  50.  
  51.     // Метод для виводу інформації про виробника
  52.     virtual void show() const {
  53.         cout << "Виробник: " << manufacturerName << ", Рік випуску: " << releaseYear << endl;
  54.     }
  55. };
  56.  
  57. // Клас "Електроніка_від_виробника", який успадковує властивості обох базових класів
  58. class ElectronicsByManufacturer : public ElectronicDevice, public Manufacturer {
  59. public:
  60.     // Конструктор з параметрами для ініціалізації обох базових класів
  61.     ElectronicsByManufacturer(string type, int capacity, string name, int year)
  62.         : ElectronicDevice(type, capacity), Manufacturer(name, year) {}
  63.  
  64.     // Перевизначення методу show() для виведення всієї інформації про пристрій
  65.     void show() const override {
  66.         cout << "Електронний пристрій від виробника:" << endl;
  67.         ElectronicDevice::show();
  68.         Manufacturer::show();
  69.     }
  70. };
  71.  
  72. // Основна функція
  73. int main() {
  74.     // Створення об'єкта класу ElectronicsByManufacturer
  75.     ElectronicsByManufacturer device("Смартфон", 4000, "Samsung", 2023);
  76.  
  77.     // Виведення інформації про об'єкт
  78.     device.show();
  79.  
  80.     return 0;
  81. }
  82.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement