#ifndef EXERCISE_2_HPP_ #define EXERCISE_2_HPP_ #include class Car { private: std::string m_company; std::string m_model; protected: std::string getCompany() const { return m_company; } std::string getModel() const { return m_model; } public: Car(std::string company, std::string model) : m_company(company), m_model(model) { std::cout << "Транспортное средство компании " + getCompany() + ", модель " + getModel() << std::endl; } }; class PassengerCar : virtual public Car { public: PassengerCar(std::string company, std::string model) : Car(company, model) { std::cout << "Легковой автомобиль компании " + getCompany() + ", модель " + getModel() << std::endl; } }; class Bus : virtual public Car { public: Bus(std::string company, std::string model) : Car(company, model) { std::cout << "Автобус компании " + getCompany() + ", модель " + getModel() << std::endl; } }; class Minivan : public PassengerCar, public Bus { public: Minivan(std::string company, std::string model) : Car(company, model), PassengerCar(company, model), Bus(company, model) { std::cout << "Минивэн компании " + getCompany() + ", модель " + getModel() << std::endl; } }; #endif