私のゲーム エンジンには、 EntityCharacter、EntityVehicle、EntityVehicleSeatの3 つのクラスがあります。
EntityVehicleには、 EntityCharacterのインスタンスへのポインターを持つ座席オブジェクトが含まれています。座席オブジェクトのターゲット キャラクター エンティティ ポインターがヌル ポインターの場合、その特定の座席オブジェクトに座っているキャラクターはいません。EntityCharacter クラスのインスタンスには、座席オブジェクトへのポインターもあり、これらのキャラクター エンティティが車両に座っているかどうかを示します。
つまり、EntityCharacter クラスのインスタンスには EntityVehicleSeat へのポインターがあり、その逆もあります。
EntityCharacter -> EntityVehicleSeat
EntityCharacter <- EntityVehicleSeat
このようにして、キャラクターと車両エンティティの両方を介してこの所有権を確認できます。
ポインターを相互に指すように設定するのは簡単ですが、問題が 1 つあります。他のオブジェクトがスコープ外になると、残りのオブジェクトに無効なポインターが作成されることになります。
この種の所有権を洗練された方法で表現するにはどうすればよいでしょうか。他のオブジェクトが存在しなくなったことを他のオブジェクトにどのように通知できますか?