C ++接口,构造函数中的实现和引用

时间:2018-01-20 17:35:09

标签: c++ interface interface-implementation

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

现在让它变得更干净,这里是代码:

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 个答案:

没有答案