当我尝试调用需要特殊接口实现的构造函数时,我遇到了一个问题。
现在让它变得更干净,这里是代码:
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。
那我怎么解决这个问题呢?
谢谢!