#ifndef FACTORY_HPP #define FACTORY_HPP #include #include #include #include #include #include "parts.hpp" // Gear Concrete Factory class GearFactory { public: explicit GearFactory(std::string name_="GearFactory") : name(std::move(name_)) {} Part* requestPart(); Part* requestPart(std::string partName, float price); void showStock() const; std::string getName() const { return name;} protected: Part* makePart(); Part* makePart(std::string name, float price); private: std::string name; std::unordered_map inventory; }; #endif // FACTORY_HPP