在我的遊戲中,有很多Foo類的對象互相交互。類Foo的靜態方法使用容器更新所有對象,以便跟蹤創建的對象。任何時候都可能死於多個對象的對象
我的問題是,一個Foo對象可能會殺死另一個對象,Foo的其他實例不知道這個可怕的事件,他們可以使用死對象(刪除),從而給出一個錯誤。
我有一些想法,以避免指針刪除的對象,但我不認爲他們是合適的。
1)一類智能指針的用於檢查空對象。
大概這是糟糕的想法,我也沒看不出任何地方這樣的事情。我可以創建一個指針,當調用delete時,刪除指向的Foo對象,然後在轉換爲Boolean時給出false(所以可以知道是否可以調用它的方法)。
2)每個Foo對象不與一個指針,但與ID跟蹤其他對象。
然後對象通過Foo類的靜態方法獲取指向另一個Foo對象的指針(正如我所說的Foo類有一個跟蹤所有實例的容器)。 它也可以在多線程環境中進行簡單的修改,但它可能非常廣泛,每個對象在每個幀期間都會在容器中搜索另一個對象。
3)每個Foo對象跟蹤具有一個指向它的指針的對象。 該對象在殺死(刪除)時調用其他對象的方法。然後這些對象刪除指向已刪除對象的指針。還有其他的課程。所以這不是真正的面向對象。
我實際上認爲有一個簡單的解決方案,我找不到。