﻿1
00:00:04,420 --> 00:00:05,230
‫Olá e bem-vindo.

2
00:00:05,230 --> 00:00:10,840
‫Nesta palestra, veremos o equivalente em C++ das funções de blueprint puras, que são

3
00:00:10,840 --> 00:00:12,190
‫as funções CONST.

4
00:00:12,460 --> 00:00:18,130
‫Vamos ver o que é essa palavra-chave, como a usamos e como ela restringe o que podemos fazer em nosso

5
00:00:18,130 --> 00:00:20,020
‫código para nos tornar mais seguros.

6
00:00:20,140 --> 00:00:21,730
‫Vamos mergulhar e ver como funciona.

7
00:00:22,790 --> 00:00:29,540
‫Nos blueprints, conseguimos tornar uma função pura, e isso significava que poderíamos eliminar a

8
00:00:29,540 --> 00:00:32,300
‫necessidade dos pinos de execução.

9
00:00:32,720 --> 00:00:38,570
‫Agora, em C++, podemos fazer algo um pouco mais forte, que é fazer um conceito de função.

10
00:00:39,260 --> 00:00:41,300
‫Agora, o que significa fazer uma função const?

11
00:00:41,690 --> 00:00:50,750
‫Isso significa que essa função não pode modificar o estado de sua classe e, na verdade, é imposta pelas regras

12
00:00:50,750 --> 00:00:51,890
‫do compilador.

13
00:00:51,920 --> 00:00:54,400
‫Então deixe-me dar um exemplo.

14
00:00:54,410 --> 00:01:01,160
‫Se eu tirasse a função de retorno da plataforma, esta não é uma função que deve modificar nada

15
00:01:01,160 --> 00:01:07,730
‫na classe e seria um erro realmente se esquecêssemos isso, porque seria estranho se chamar isso e usá-lo

16
00:01:07,730 --> 00:01:14,480
‫e se a instrução realmente mudasse a localização da plataforma ou se atualizou a distância do movimento ou

17
00:01:14,480 --> 00:01:16,220
‫a velocidade da plataforma.

18
00:01:16,760 --> 00:01:20,510
‫Então, para nos mantermos honestos com isso, podemos torná-lo const.

19
00:01:20,510 --> 00:01:28,570
‫E a maneira como fazemos isso é colocando a palavra-chave contact após os parênteses da função.

20
00:01:28,580 --> 00:01:30,710
‫Muitas vezes deixamos um espaço aqui também.

21
00:01:31,310 --> 00:01:38,330
‫Agora, para que ele corresponda corretamente à função no arquivo C++, na verdade, temos que

22
00:01:38,330 --> 00:01:41,600
‫colocar essa palavra-chave const lá também.

23
00:01:41,750 --> 00:01:46,670
‫Agora, como eu disse, isso agora torna um erro fazer qualquer coisa que modifique a classe.

24
00:01:46,680 --> 00:01:53,210
‫Então, se a plataforma retornar, eu tentaria modificar uma variável de classe, como distância de movimento.

25
00:01:53,570 --> 00:01:56,810
‫Eu poderia tentar definir a distância de movimento para 200.

26
00:01:57,350 --> 00:02:01,550
‫Vamos ver o que acontece quando vamos para irreal e apertamos o botão de compilação.

27
00:02:01,640 --> 00:02:01,990
‫OK.

28
00:02:02,000 --> 00:02:03,740
‫Você pode ver que agora há um erro.

29
00:02:03,740 --> 00:02:08,900
‫Ele falha ao compilar e se você observar o erro, poderá ver que há algo

30
00:02:08,900 --> 00:02:14,930
‫sendo dito aqui sobre não poder modificar algo porque está sendo acessado por meio de um ponteiro de contato.

31
00:02:15,200 --> 00:02:17,270
‫Agora, não se preocupe com essa linguagem.

32
00:02:17,270 --> 00:02:22,430
‫É um pouco difícil de interpretar, mas o ponto é que a palavra-chave const estava lá e está dizendo

33
00:02:22,430 --> 00:02:25,690
‫que não é capaz de modificar algo e isso é crucial.

34
00:02:25,700 --> 00:02:31,760
‫Além disso, se você chamou qualquer função que não esteja marcada como const, isso também é um problema.

35
00:02:31,760 --> 00:02:37,930
‫Portanto, embora seja bom chamar a localização do ator, que é uma função de contato, não muda nada.

36
00:02:37,930 --> 00:02:39,170
‫Ele apenas recebe a localização.

37
00:02:39,530 --> 00:02:46,310
‫Não há problema em chamar o local do ator definido que não foi marcado como const.

38
00:02:46,550 --> 00:02:48,080
‫E por isso não é válido.

39
00:02:48,080 --> 00:02:50,250
‫Pode estar modificando a classe.

40
00:02:50,250 --> 00:02:55,520
‫Portanto, qualquer função que não esteja marcada como consciente não pode ser chamada de dentro de uma função de contato.

41
00:02:56,120 --> 00:02:58,700
‫E assim você pode ver um problema surgindo.

42
00:02:58,700 --> 00:03:05,870
‫Na verdade, não podemos chamar get distance movido de dentro do retorno garantido da plataforma porque o retorno da plataforma deve ser const,

43
00:03:05,870 --> 00:03:09,410
‫mas obter a distância movida não foi marcado como tal.

44
00:03:09,620 --> 00:03:16,220
‫Então carregue rapidamente para você obter a distância movida const faça obter a distância movida const então no cabeçalho e veja

45
00:03:16,220 --> 00:03:19,070
‫o arquivo p você adicionará essas palavras-chave const.

46
00:03:19,070 --> 00:03:23,810
‫Deixe o C++ saber que ele não deve modificar a classe e compila.

47
00:03:23,810 --> 00:03:25,850
‫Agora pause o vídeo e vá em frente.

48
00:03:29,260 --> 00:03:29,730
‫OK.

49
00:03:29,740 --> 00:03:30,340
‫Bem vindo de volta.

50
00:03:30,370 --> 00:03:32,800
‫Então, vamos primeiro para a cabeça do arquivo.

51
00:03:32,800 --> 00:03:37,090
‫E após o fechamento dos parênteses, vamos adicionar um conceito de espaço e então vamos

52
00:03:37,090 --> 00:03:38,290
‫voltar ao arquivo C++.

53
00:03:38,650 --> 00:03:42,340
‫E depois que a distância move os parênteses, vamos colocar o concurso de espaço.

54
00:03:42,820 --> 00:03:47,650
‫Agora, as linhas onduladas em obter a distância movida devem ser atualizadas em um pouco de tempo.

55
00:03:47,650 --> 00:03:53,230
‫Mas se formos até o Unreal e apertarmos o botão de compilação, esse será o árbitro final sobre se o

56
00:03:53,230 --> 00:03:55,570
‫compilador gosta do que fizemos ou não.

57
00:03:55,750 --> 00:04:02,200
‫E desta vez a compilação foi bem sucedida, o que significa que atualizamos corretamente nosso

58
00:04:02,200 --> 00:04:02,860
‫código.

59
00:04:03,220 --> 00:04:08,650
‫E isso faz sentido porque não há nada sendo chamado de distância que não seja contato, não

60
00:04:08,890 --> 00:04:10,510
‫é tentar mudar nada.

61
00:04:10,930 --> 00:04:17,830
‫E onde estamos chamando uma função caso a plataforma retorne, estamos usando apenas funções de contato e esta

62
00:04:18,040 --> 00:04:24,100
‫é uma maneira de aumentar a segurança de nosso código porque as funções não mudarão coisas

63
00:04:24,430 --> 00:04:26,170
‫sem que saibamos disso.

64
00:04:26,200 --> 00:04:30,730
‫Agora, como um pequeno exercício para si mesmo, você pode querer examinar todas as funções que

65
00:04:30,730 --> 00:04:35,170
‫temos usado até agora e ver quais delas estão marcadas como constantes, quais não estão.

66
00:04:35,500 --> 00:04:41,800
‫Você pode fazer isso simplesmente passando o mouse sobre uma função como chegar a um local e vendo se o

67
00:04:41,800 --> 00:04:45,970
‫pop-up que está incluído, se após os parênteses ter contato ou não.

68
00:04:46,270 --> 00:04:53,170
‫Você pode dizer que com o local ativo pairando sobre ele me dá const pairando sobre get name também me dá que

69
00:04:53,170 --> 00:04:55,300
‫isso é constante e faz sentido.

70
00:04:55,330 --> 00:04:59,290
‫Nenhum desses dois deveria estar mudando o estado de nossa classe.

71
00:04:59,860 --> 00:05:03,790
‫Agora, se eu passar o mouse sobre o tick, você pode ver que este não está marcado como constante.

72
00:05:03,790 --> 00:05:10,030
‫Isso faz sentido porque Tick geralmente é usado para atualizar como uma classe está posicionada no mundo ou em qualquer

73
00:05:10,030 --> 00:05:11,080
‫estado da classe.

74
00:05:11,620 --> 00:05:13,210
‫E nós temos nosso vetor.

75
00:05:13,360 --> 00:05:18,820
‫Se passarmos o mouse sobre, obter o normal, seguro, você pode ver que está marcado como

76
00:05:18,820 --> 00:05:24,760
‫constantes porque obter o normal seguro não modifica o vetor, apenas retorna um valor com um novo vetor nele.

77
00:05:24,820 --> 00:05:25,480
‫Então é isso.

78
00:05:25,480 --> 00:05:32,380
‫Para esta palestra, aprendemos sobre como adicionar const às nossas funções para aumentar a segurança do nosso código.

79
00:05:32,590 --> 00:05:33,790
‫Vejo você na próxima.

