C ++ интерфейс, реализация и ссылка в конструкторе

У меня проблема, когда я пытаюсь вызвать конструктор, который требует специальной реализации интерфейса.

Чтобы сделать его чище, вот код:

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.

Так как я могу решить эту проблему?

Спасибо !

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]