‫Olá e bem-vindo.
‫Nesta palestra, veremos o equivalente em C++ das funções de blueprint puras, que são
‫as funções CONST.
‫Vamos ver o que é essa palavra-chave, como a usamos e como ela restringe o que podemos fazer em nosso
‫código para nos tornar mais seguros.
‫Vamos mergulhar e ver como funciona.
‫Nos blueprints, conseguimos tornar uma função pura, e isso significava que poderíamos eliminar a
‫necessidade dos pinos de execução.
‫Agora, em C++, podemos fazer algo um pouco mais forte, que é fazer um conceito de função.
‫Agora, o que significa fazer uma função const?
‫Isso significa que essa função não pode modificar o estado de sua classe e, na verdade, é imposta pelas regras
‫do compilador.
‫Então deixe-me dar um exemplo.
‫Se eu tirasse a função de retorno da plataforma, esta não é uma função que deve modificar nada
‫na classe e seria um erro realmente se esquecêssemos isso, porque seria estranho se chamar isso e usá-lo
‫e se a instrução realmente mudasse a localização da plataforma ou se atualizou a distância do movimento ou
‫a velocidade da plataforma.
‫Então, para nos mantermos honestos com isso, podemos torná-lo const.
‫E a maneira como fazemos isso é colocando a palavra-chave contact após os parênteses da função.
‫Muitas vezes deixamos um espaço aqui também.
‫Agora, para que ele corresponda corretamente à função no arquivo C++, na verdade, temos que
‫colocar essa palavra-chave const lá também.
‫Agora, como eu disse, isso agora torna um erro fazer qualquer coisa que modifique a classe.
‫Então, se a plataforma retornar, eu tentaria modificar uma variável de classe, como distância de movimento.
‫Eu poderia tentar definir a distância de movimento para 200.
‫Vamos ver o que acontece quando vamos para irreal e apertamos o botão de compilação.
‫OK.
‫Você pode ver que agora há um erro.
‫Ele falha ao compilar e se você observar o erro, poderá ver que há algo
‫sendo dito aqui sobre não poder modificar algo porque está sendo acessado por meio de um ponteiro de contato.
‫Agora, não se preocupe com essa linguagem.
‫É um pouco difícil de interpretar, mas o ponto é que a palavra-chave const estava lá e está dizendo
‫que não é capaz de modificar algo e isso é crucial.
‫Além disso, se você chamou qualquer função que não esteja marcada como const, isso também é um problema.
‫Portanto, embora seja bom chamar a localização do ator, que é uma função de contato, não muda nada.
‫Ele apenas recebe a localização.
‫Não há problema em chamar o local do ator definido que não foi marcado como const.
‫E por isso não é válido.
‫Pode estar modificando a classe.
‫Portanto, qualquer função que não esteja marcada como consciente não pode ser chamada de dentro de uma função de contato.
‫E assim você pode ver um problema surgindo.
‫Na verdade, não podemos chamar get distance movido de dentro do retorno garantido da plataforma porque o retorno da plataforma deve ser const,
‫mas obter a distância movida não foi marcado como tal.
‫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
‫o arquivo p você adicionará essas palavras-chave const.
‫Deixe o C++ saber que ele não deve modificar a classe e compila.
‫Agora pause o vídeo e vá em frente.
‫OK.
‫Bem vindo de volta.
‫Então, vamos primeiro para a cabeça do arquivo.
‫E após o fechamento dos parênteses, vamos adicionar um conceito de espaço e então vamos
‫voltar ao arquivo C++.
‫E depois que a distância move os parênteses, vamos colocar o concurso de espaço.
‫Agora, as linhas onduladas em obter a distância movida devem ser atualizadas em um pouco de tempo.
‫Mas se formos até o Unreal e apertarmos o botão de compilação, esse será o árbitro final sobre se o
‫compilador gosta do que fizemos ou não.
‫E desta vez a compilação foi bem sucedida, o que significa que atualizamos corretamente nosso
‫código.
‫E isso faz sentido porque não há nada sendo chamado de distância que não seja contato, não
‫é tentar mudar nada.
‫E onde estamos chamando uma função caso a plataforma retorne, estamos usando apenas funções de contato e esta
‫é uma maneira de aumentar a segurança de nosso código porque as funções não mudarão coisas
‫sem que saibamos disso.
‫Agora, como um pequeno exercício para si mesmo, você pode querer examinar todas as funções que
‫temos usado até agora e ver quais delas estão marcadas como constantes, quais não estão.
‫Você pode fazer isso simplesmente passando o mouse sobre uma função como chegar a um local e vendo se o
‫pop-up que está incluído, se após os parênteses ter contato ou não.
‫Você pode dizer que com o local ativo pairando sobre ele me dá const pairando sobre get name também me dá que
‫isso é constante e faz sentido.
‫Nenhum desses dois deveria estar mudando o estado de nossa classe.
‫Agora, se eu passar o mouse sobre o tick, você pode ver que este não está marcado como constante.
‫Isso faz sentido porque Tick geralmente é usado para atualizar como uma classe está posicionada no mundo ou em qualquer
‫estado da classe.
‫E nós temos nosso vetor.
‫Se passarmos o mouse sobre, obter o normal, seguro, você pode ver que está marcado como
‫constantes porque obter o normal seguro não modifica o vetor, apenas retorna um valor com um novo vetor nele.
‫Então é isso.
‫Para esta palestra, aprendemos sobre como adicionar const às nossas funções para aumentar a segurança do nosso código.
‫Vejo você na próxima.