C++ には、Java の弱参照に似たものがありますか? ゲーム内のオブジェクトのリスト (クラス Soldier、リストは std::list* 敵) を持っており、そこに目に見える敵兵のリストを保持しています。すべての兵士は、敵の兵士へのポインターを持つことができます ( Soldier* ターゲット; クラス内)。他の鉱山の兵士が敵の兵士を殺したときに必要なもの (その後、殺された兵士は敵のリストから削除されます) その兵士のポインターをターゲットとして持つすべての兵士は、削除されているため、null にする必要があります。私はこれを兵士のIDで解決できます。チェックするループごとに同じIDを持つ敵の兵士がいますが、力ずくのようです。これをよりエレガントな方法で解決できますか (c++11 は使用できませんか?
class Soldier{
Soldier* target;
public:
// other functions
void shootAtTarget();
};