[英]How to get glutTimerFunct to call a child classes function
因此,我正在嘗試制作一個反映Ruby的Gosu gem(一個2D圖形插件)的項目。 為此,我創建了一個名為Window的類,該類旨在從(類Game:public Window)繼承,然后定義其三個功能: Update()
Controls()
和Draw()
。
為了在我的窗口類中完成此操作,我有一個定義的函數Show()
,如下所示
void Window::Show(){
// stuff to initialize and set up my window and controls
glutTimerFunc(100,real_update,fps);
}
我的real_update
函數很簡單
void Window::real_update(int v){
glutPostRedisplay();
Update();
glutTimerFunc(1000/fps,real_update,v);
}
這里的邏輯是,無論繼承了Window
任何類,都可以調用Show()
,這將設置回調循環並初始化窗口,然后在real_update
循環中將調用將在子類中定義的Update
。
但是,當我創建一個簡單的子類時,在子類中定義Update
以僅指示它正在被調用,然后在該子類的實例上調用Show,它將永遠只調用Update
的基類的(Window)定義。
我敢肯定這是對繼承的誤解,但我不明白為什么。 我認為對Show()
的子類調用將調用基類的定義,然后再調用Update
,該定義自子類重新定義以來已更改。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.