У меня проблема, когда я пытаюсь вызвать конструктор, который требует специальной реализации интерфейса.
Чтобы сделать его чище, вот код:
I_Window* window = new GLFW_Window(800,600,"Learn OpenGL");
I_Input_Manager* manager = new GLFW_Input_Manager(*window);
И класс, реализующий интерфейс, выглядит так:
class GLFW_Input_Manager : public I_Input_Manager
{
private:
GLFW_Window& window_ref;
public:
GLFW_Input_Manager(GLFW_Window& window_ref_);
virtual ~GLFW_Input_Manager();
//...
};
Ошибка, возвращаемая компилятором:
error: no matching function for call to ‘GLFW_Input_Manager::GLFW_Input_Manager(I_Window&)’
I_Input_Manager* manager = new GLFW_Input_Manager(*window);
Я понимаю проблему, мой конструктор нуждается в качестве аргумента «I_Window», но для этой специальной реализации мне нужна ссылка на GLFW_Window, потому что реальная реализация будет использовать GLFWwindow.
Так как я могу решить эту проблему?
Спасибо !
Задача ещё не решена.
Других решений пока нет …