我目前正在研究一個遊戲,其中有幾個類,每個類都處理自己的遊戲對象。對於這些類實際上代表遊戲中的某些東西,他們需要使用另一個類是animation_manager。 animation_manager處理屏幕上對象的加載,繪製和移動,並在啓動時創建。我應該使用公共指針嗎?
將管理器傳遞給處理遊戲對象的類最聰明的方法是什麼?
它應該由公共指針完成,通過將它分配給每個遊戲對象繼承的對象類中的靜態指針,或者我應該只是將它作爲指向gameobjects/object類構造函數的指針傳遞給它?
我使用C++ 03所以沒有新的花哨修正:P
編輯1:
已經有很多很好的建議,我已經麻木了。 現在我不會使用弱指針,因爲我不需要對象處理程序來處理指針的刪除,因爲它將從程序的開始到結束存在。 單身人士不適合我的需求,因爲我不希望任何職業人士有權訪問它。
讀到回覆時想到的一件事是:在所有處理類繼承的Object class
中爲anim_handler
製作static reference
是一個好主意嗎?
靜態引用的問題是它必須「靜態」初始化,並且作爲引用,它只能被初始化爲引用已定義的對象。因此,例如,如果您不能使用「new」實例化anim_handler對象,並且您可能會在祖先類和具體對象之間產生一個非常緊湊和相當不舒服的界限。你可以通過使用指針來克服這個限制,但是任何對象都可以對該指針執行「刪除」,或者只是修改它。如果你要走這條路線,我會建議使用智能指針。 – Albert