0

当我尝试调用需要特殊实现接口的构造函数时遇到问题。

为了使它现在更干净,这里是代码:

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。

那么我该如何解决这个问题呢?

谢谢 !

4

0 回答 0