6

私のゲーム エンジンには、 EntityCharacterEntityVehicleEntityVehicleSeatの3 つのクラスがあります。

ここに画像の説明を入力

EntityVehicleには、 EntityCharacterのインスタンスへのポインターを持つ座席オブジェクトが含まれています。座席オブジェクトのターゲット キャラクター エンティティ ポインターがヌル ポインターの場合、その特定の座席オブジェクトに座っているキャラクターはいません。EntityCharacter クラスのインスタンスには、座席オブジェクトへのポインターもあり、これらのキャラクター エンティティが車両に座っているかどうかを示します。

つまり、EntityCharacter クラスのインスタンスには EntityVehicleSeat へのポインターがあり、その逆もあります。

EntityCharacter -> EntityVehicleSeat
EntityCharacter <- EntityVehicleSeat

このようにして、キャラクターと車両エンティティの両方を介してこの所有権を確認できます。

ポインターを相互に指すように設定するのは簡単ですが、問題が 1 つあります。他のオブジェクトがスコープ外になると、残りのオブジェクトに無効なポインターが作成されることになります。

ここに画像の説明を入力

この種の所有権を洗練された方法で表現するにはどうすればよいでしょうか。他のオブジェクトが存在しなくなったことを他のオブジェクトにどのように通知できますか?

4

1 に答える 1