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