﻿1
00:00:04,420 --> 00:00:05,230
‫Ciao e Benvenuto.

2
00:00:05,230 --> 00:00:10,840
‫In questa lezione, esamineremo l'equivalente C++ delle funzioni blueprint pure, che sono le

3
00:00:10,840 --> 00:00:12,190
‫funzioni CONST.

4
00:00:12,460 --> 00:00:18,130
‫Vedremo cos'è questa parola chiave, come la usiamo e come limita ciò che possiamo fare nel nostro

5
00:00:18,130 --> 00:00:20,020
‫codice per renderci più sicuri.

6
00:00:20,140 --> 00:00:21,730
‫Entriamo e vediamo come funziona.

7
00:00:22,790 --> 00:00:29,540
‫Nei progetti, siamo stati in grado di rendere pura una funzione, il che significava che avremmo potuto eliminare

8
00:00:29,540 --> 00:00:32,300
‫la necessità dei pin di esecuzione.

9
00:00:32,720 --> 00:00:38,570
‫Ora, in C++, possiamo fare qualcosa di un po' più forte, ovvero creare un concetto di funzione.

10
00:00:39,260 --> 00:00:41,300
‫Ora, cosa significa creare una funzione const?

11
00:00:41,690 --> 00:00:50,750
‫Significa che quella funzione non può modificare lo stato della tua classe ed è effettivamente applicata dalle regole

12
00:00:50,750 --> 00:00:51,890
‫del compilatore.

13
00:00:51,920 --> 00:00:54,400
‫Allora lascia che ti faccia un esempio.

14
00:00:54,410 --> 00:01:01,160
‫Se dovessi eliminare la funzione di ritorno della piattaforma, questa non è una funzione che dovrebbe modificare nulla

15
00:01:01,160 --> 00:01:07,730
‫nella classe e sarebbe davvero un errore se lo dimenticassimo perché sarebbe strano se chiamarlo e usarlo

16
00:01:07,730 --> 00:01:14,480
‫e se l'istruzione cambiasse effettivamente la posizione della piattaforma o se ha aggiornato la distanza di spostamento o

17
00:01:14,480 --> 00:01:16,220
‫la velocità della piattaforma.

18
00:01:16,760 --> 00:01:20,510
‫Quindi, per mantenerci onesti, possiamo renderlo const.

19
00:01:20,510 --> 00:01:28,570
‫E il modo in cui lo facciamo è mettere la parola chiave contact dopo le parentesi della funzione.

20
00:01:28,580 --> 00:01:30,710
‫Spesso lasciamo uno spazio anche qui.

21
00:01:31,310 --> 00:01:38,330
‫Ora, affinché corrisponda correttamente alla funzione nel file C++, in realtà dobbiamo inserire

22
00:01:38,330 --> 00:01:41,600
‫anche quella parola chiave const lì.

23
00:01:41,750 --> 00:01:46,670
‫Ora, come ho detto, questo ora rende un errore fare qualsiasi cosa che modificherebbe la classe.

24
00:01:46,680 --> 00:01:53,210
‫Quindi, se la piattaforma dovesse tornare, proverei a modificare una variabile di classe come la distanza di spostamento.

25
00:01:53,570 --> 00:01:56,810
‫Potrei provare a impostare la distanza di spostamento su 200.

26
00:01:57,350 --> 00:02:01,550
‫Vediamo cosa succede quando andiamo su irreale e premiamo il pulsante di compilazione.

27
00:02:01,640 --> 00:02:01,990
‫Bene.

28
00:02:02,000 --> 00:02:03,740
‫Puoi vedere che ora c'è un errore.

29
00:02:03,740 --> 00:02:08,900
‫Non riesce a compilare e se guardi l'errore, puoi vedere che c'è qualcosa che viene

30
00:02:08,900 --> 00:02:14,930
‫detto qui sul non essere in grado di modificare qualcosa perché si accede tramite un puntatore di contatto.

31
00:02:15,200 --> 00:02:17,270
‫Ora, non preoccuparti di quella lingua.

32
00:02:17,270 --> 00:02:22,430
‫È un po' difficile da interpretare, ma il punto è che la parola chiave const era lì e dice

33
00:02:22,430 --> 00:02:25,690
‫che non è in grado di modificare qualcosa e questo è fondamentale.

34
00:02:25,700 --> 00:02:31,760
‫Inoltre, se hai chiamato funzioni che non sono contrassegnate come const, anche questo è un problema.

35
00:02:31,760 --> 00:02:37,930
‫Quindi, mentre va bene chiamare la posizione dell'attore che è una funzione di contatto non cambia nulla.

36
00:02:37,930 --> 00:02:39,170
‫Ottiene solo la posizione.

37
00:02:39,530 --> 00:02:46,310
‫Non va bene chiamare la posizione dell'attore sul set che non è stata contrassegnata come const.

38
00:02:46,550 --> 00:02:48,080
‫E quindi non è valido.

39
00:02:48,080 --> 00:02:50,250
‫Potrebbe modificare la classe.

40
00:02:50,250 --> 00:02:55,520
‫Quindi qualsiasi funzione che non sia contrassegnata come cosciente non può essere chiamata dall'interno di una funzione di contatto.

41
00:02:56,120 --> 00:02:58,700
‫E così puoi vedere emergere un problema.

42
00:02:58,700 --> 00:03:05,870
‫In realtà non possiamo chiamare la distanza spostata dall'interno del ritorno della piattaforma assicurato perché se il ritorno della piattaforma è const

43
00:03:05,870 --> 00:03:09,410
‫ma la distanza spostata non è stata contrassegnata come tale.

44
00:03:09,620 --> 00:03:16,220
‫Quindi carica velocemente per ottenere la distanza spostata const fai ottenere distanza sposta const così nell'intestazione e vedi il

45
00:03:16,220 --> 00:03:19,070
‫file p aggiungerai quelle parole chiave const.

46
00:03:19,070 --> 00:03:23,810
‫Fai sapere a C++ che non dovrebbe modificare la classe e la compila.

47
00:03:23,810 --> 00:03:25,850
‫Ora metti in pausa il video e prova.

48
00:03:29,260 --> 00:03:29,730
‫Bene.

49
00:03:29,740 --> 00:03:30,340
‫Ben tornato.

50
00:03:30,370 --> 00:03:32,800
‫Quindi andremo prima al capo del fascicolo.

51
00:03:32,800 --> 00:03:37,090
‫E dopo le parentesi di chiusura, aggiungeremo un concetto di spazio e poi torneremo

52
00:03:37,090 --> 00:03:38,290
‫al file C++.

53
00:03:38,650 --> 00:03:42,340
‫E dopo che la distanza si sposta tra parentesi, metteremo la competizione spaziale.

54
00:03:42,820 --> 00:03:47,650
‫Ora le linee ondulate sotto la distanza spostata dovrebbero aggiornarsi in un po' di tempo.

55
00:03:47,650 --> 00:03:53,230
‫Ma se andiamo su Unreal e premiamo il pulsante di compilazione, quello sarà l'arbitro finale sul fatto che al compilatore

56
00:03:53,230 --> 00:03:55,570
‫piaccia o meno quello che abbiamo fatto.

57
00:03:55,750 --> 00:04:02,200
‫E questa volta la compilazione è riuscita con successo, il che significa che abbiamo aggiornato correttamente il nostro

58
00:04:02,200 --> 00:04:02,860
‫codice.

59
00:04:03,220 --> 00:04:08,650
‫E questo ha senso perché non c'è nulla che venga chiamato per spostarsi a distanza che non sia contatto, non

60
00:04:08,890 --> 00:04:10,510
‫stia cercando di cambiare nulla.

61
00:04:10,930 --> 00:04:17,830
‫E dove chiamiamo una funzione in caso di ritorno della piattaforma, utilizziamo solo funzioni di contatto e questo è

62
00:04:18,040 --> 00:04:24,100
‫un modo per aumentare la sicurezza del nostro codice perché le funzioni non cambieranno le cose senza

63
00:04:24,430 --> 00:04:26,170
‫che noi lo sappiamo.

64
00:04:26,200 --> 00:04:30,730
‫Ora, come piccolo esercizio per te stesso, potresti voler esaminare tutte le funzioni che abbiamo utilizzato

65
00:04:30,730 --> 00:04:35,170
‫fino ad ora e vedere quali di esse sono contrassegnate come costanti, quali no.

66
00:04:35,500 --> 00:04:41,800
‫Puoi farlo semplicemente passando il mouse su una funzione come raggiungere una posizione e vedere se il pop-up è

67
00:04:41,800 --> 00:04:45,970
‫incluso, se dopo che le parentesi hanno un contatto o meno.

68
00:04:46,270 --> 00:04:53,170
‫Puoi dire che con la posizione attiva che passa sopra mi dà const che passa sopra ottenere il nome mi dà anche che

69
00:04:53,170 --> 00:04:55,300
‫questo è costante e ha senso.

70
00:04:55,330 --> 00:04:59,290
‫Nessuno dei due dovrebbe cambiare lo stato della nostra classe.

71
00:04:59,860 --> 00:05:03,790
‫Ora, se ho passato il mouse sopra il segno di spunta, puoi vedere che questo non è contrassegnato come costante.

72
00:05:03,790 --> 00:05:10,030
‫Ciò ha senso perché Tick viene solitamente utilizzato per aggiornare la posizione di una classe nel mondo o in qualsiasi

73
00:05:10,030 --> 00:05:11,080
‫stato della classe.

74
00:05:11,620 --> 00:05:13,210
‫E abbiamo il nostro vettore.

75
00:05:13,360 --> 00:05:18,820
‫Se passiamo con il mouse sopra, prendiamo sicuro, normale, puoi vedere che è contrassegnato come costante perché

76
00:05:18,820 --> 00:05:24,760
‫ottenere sicuro normale in realtà non modifica il vettore, restituisce solo un valore con un nuovo vettore al suo interno.

77
00:05:24,820 --> 00:05:25,480
‫Quindi è tutto.

78
00:05:25,480 --> 00:05:32,380
‫In questa lezione abbiamo imparato ad aggiungere const alle nostre funzioni per aumentare la sicurezza del nostro codice.

79
00:05:32,590 --> 00:05:33,790
‫Ci vediamo al prossimo.

