Nel mio motore di gioco, ci sono tre classi: EntityCharacter, EntityVehicle e EntityVehicleSeat.C++ - Rappresentare la proprietà tramite puntatori
EntityVehicle contiene oggetti di sicurezza con puntatori a istanze di EntityCharacter. Se il puntatore dell'entità carattere di destinazione dell'oggetto seat è un puntatore nullo, nessun personaggio è seduto su quello specifico oggetto del sedile. Le istanze di classe EntityCharacter hanno anche dei puntatori per posizionare gli oggetti, indicando se queste entità di carattere sono sedute in alcuni veicoli o meno.
In altre parole, esempio EntityCharacter-classe ha un puntatore al EntityVehicleSeat e viceversa:
EntityCharacter -> EntityVehicleSeat
EntityCharacter <- EntityVehicleSeat
In questo modo siamo in grado di controllare questo possesso sia tramite entità carattere e del veicolo.
Sarebbe semplice impostare i puntatori in modo che puntino l'un l'altro, ma c'è un problema: se l'altro oggetto non rientra nell'ambito, finiremo per avere un puntatore non valido nell'oggetto rimanente.
Come si può rappresentare questo tipo di proprietà sofisticato? In che modo l'altro oggetto può essere informato del fatto che l'altro oggetto non esiste più?
Utilizzare la notifica sul distruttore. – Yousf
potresti usare il distruttore per notificare l'altro oggetto? –
Questa è solo una relazione 1: 1? – Potatoswatter