‫Ciao e Benvenuto.
‫In questa lezione, esamineremo l'equivalente C++ delle funzioni blueprint pure, che sono le
‫funzioni CONST.
‫Vedremo cos'è questa parola chiave, come la usiamo e come limita ciò che possiamo fare nel nostro
‫codice per renderci più sicuri.
‫Entriamo e vediamo come funziona.
‫Nei progetti, siamo stati in grado di rendere pura una funzione, il che significava che avremmo potuto eliminare
‫la necessità dei pin di esecuzione.
‫Ora, in C++, possiamo fare qualcosa di un po' più forte, ovvero creare un concetto di funzione.
‫Ora, cosa significa creare una funzione const?
‫Significa che quella funzione non può modificare lo stato della tua classe ed è effettivamente applicata dalle regole
‫del compilatore.
‫Allora lascia che ti faccia un esempio.
‫Se dovessi eliminare la funzione di ritorno della piattaforma, questa non è una funzione che dovrebbe modificare nulla
‫nella classe e sarebbe davvero un errore se lo dimenticassimo perché sarebbe strano se chiamarlo e usarlo
‫e se l'istruzione cambiasse effettivamente la posizione della piattaforma o se ha aggiornato la distanza di spostamento o
‫la velocità della piattaforma.
‫Quindi, per mantenerci onesti, possiamo renderlo const.
‫E il modo in cui lo facciamo è mettere la parola chiave contact dopo le parentesi della funzione.
‫Spesso lasciamo uno spazio anche qui.
‫Ora, affinché corrisponda correttamente alla funzione nel file C++, in realtà dobbiamo inserire
‫anche quella parola chiave const lì.
‫Ora, come ho detto, questo ora rende un errore fare qualsiasi cosa che modificherebbe la classe.
‫Quindi, se la piattaforma dovesse tornare, proverei a modificare una variabile di classe come la distanza di spostamento.
‫Potrei provare a impostare la distanza di spostamento su 200.
‫Vediamo cosa succede quando andiamo su irreale e premiamo il pulsante di compilazione.
‫Bene.
‫Puoi vedere che ora c'è un errore.
‫Non riesce a compilare e se guardi l'errore, puoi vedere che c'è qualcosa che viene
‫detto qui sul non essere in grado di modificare qualcosa perché si accede tramite un puntatore di contatto.
‫Ora, non preoccuparti di quella lingua.
‫È un po' difficile da interpretare, ma il punto è che la parola chiave const era lì e dice
‫che non è in grado di modificare qualcosa e questo è fondamentale.
‫Inoltre, se hai chiamato funzioni che non sono contrassegnate come const, anche questo è un problema.
‫Quindi, mentre va bene chiamare la posizione dell'attore che è una funzione di contatto non cambia nulla.
‫Ottiene solo la posizione.
‫Non va bene chiamare la posizione dell'attore sul set che non è stata contrassegnata come const.
‫E quindi non è valido.
‫Potrebbe modificare la classe.
‫Quindi qualsiasi funzione che non sia contrassegnata come cosciente non può essere chiamata dall'interno di una funzione di contatto.
‫E così puoi vedere emergere un problema.
‫In realtà non possiamo chiamare la distanza spostata dall'interno del ritorno della piattaforma assicurato perché se il ritorno della piattaforma è const
‫ma la distanza spostata non è stata contrassegnata come tale.
‫Quindi carica velocemente per ottenere la distanza spostata const fai ottenere distanza sposta const così nell'intestazione e vedi il
‫file p aggiungerai quelle parole chiave const.
‫Fai sapere a C++ che non dovrebbe modificare la classe e la compila.
‫Ora metti in pausa il video e prova.
‫Bene.
‫Ben tornato.
‫Quindi andremo prima al capo del fascicolo.
‫E dopo le parentesi di chiusura, aggiungeremo un concetto di spazio e poi torneremo
‫al file C++.
‫E dopo che la distanza si sposta tra parentesi, metteremo la competizione spaziale.
‫Ora le linee ondulate sotto la distanza spostata dovrebbero aggiornarsi in un po' di tempo.
‫Ma se andiamo su Unreal e premiamo il pulsante di compilazione, quello sarà l'arbitro finale sul fatto che al compilatore
‫piaccia o meno quello che abbiamo fatto.
‫E questa volta la compilazione è riuscita con successo, il che significa che abbiamo aggiornato correttamente il nostro
‫codice.
‫E questo ha senso perché non c'è nulla che venga chiamato per spostarsi a distanza che non sia contatto, non
‫stia cercando di cambiare nulla.
‫E dove chiamiamo una funzione in caso di ritorno della piattaforma, utilizziamo solo funzioni di contatto e questo è
‫un modo per aumentare la sicurezza del nostro codice perché le funzioni non cambieranno le cose senza
‫che noi lo sappiamo.
‫Ora, come piccolo esercizio per te stesso, potresti voler esaminare tutte le funzioni che abbiamo utilizzato
‫fino ad ora e vedere quali di esse sono contrassegnate come costanti, quali no.
‫Puoi farlo semplicemente passando il mouse su una funzione come raggiungere una posizione e vedere se il pop-up è
‫incluso, se dopo che le parentesi hanno un contatto o meno.
‫Puoi dire che con la posizione attiva che passa sopra mi dà const che passa sopra ottenere il nome mi dà anche che
‫questo è costante e ha senso.
‫Nessuno dei due dovrebbe cambiare lo stato della nostra classe.
‫Ora, se ho passato il mouse sopra il segno di spunta, puoi vedere che questo non è contrassegnato come costante.
‫Ciò ha senso perché Tick viene solitamente utilizzato per aggiornare la posizione di una classe nel mondo o in qualsiasi
‫stato della classe.
‫E abbiamo il nostro vettore.
‫Se passiamo con il mouse sopra, prendiamo sicuro, normale, puoi vedere che è contrassegnato come costante perché
‫ottenere sicuro normale in realtà non modifica il vettore, restituisce solo un valore con un nuovo vettore al suo interno.
‫Quindi è tutto.
‫In questa lezione abbiamo imparato ad aggiungere const alle nostre funzioni per aumentare la sicurezza del nostro codice.
‫Ci vediamo al prossimo.