#pragma once class FileReaderFactory; #include class FileReader { friend class FileReaderFactory; protected: FileReader(const std::string & url); public: virtual ~FileReader() = default; protected: virtual void open() = 0; public: virtual void close() = 0; virtual const std::string read() = 0; protected: const std::string url = ""; };