﻿1
00:00:04,420 --> 00:00:05,230
‫Hola y bienvenido.

2
00:00:05,230 --> 00:00:10,840
‫En esta lección, vamos a ver el equivalente en C++ de las funciones blueprint puras, que son

3
00:00:10,840 --> 00:00:12,190
‫las funciones CONST.

4
00:00:12,460 --> 00:00:18,130
‫Vamos a ver qué es esta palabra clave, cómo la usamos y cómo restringe lo que podemos hacer en

5
00:00:18,130 --> 00:00:20,020
‫nuestro código para estar más seguros.

6
00:00:20,140 --> 00:00:21,730
‫Vamos a sumergirnos y ver cómo funciona.

7
00:00:22,790 --> 00:00:29,540
‫En los planos, pudimos hacer una función pura, y eso significaba que podíamos eliminar la

8
00:00:29,540 --> 00:00:32,300
‫necesidad de los pines de ejecución.

9
00:00:32,720 --> 00:00:38,570
‫Ahora, en C++, podemos hacer algo un poco más fuerte, que es crear un concepto de función.

10
00:00:39,260 --> 00:00:41,300
‫Ahora, ¿qué significa hacer que una función sea constante?

11
00:00:41,690 --> 00:00:50,750
‫Significa que esa función no puede modificar el estado de su clase y, de hecho, las reglas del compilador

12
00:00:50,750 --> 00:00:51,890
‫la imponen.

13
00:00:51,920 --> 00:00:54,400
‫Así que déjame darte un ejemplo.

14
00:00:54,410 --> 00:01:01,160
‫Si tuviera que eliminar la función de devolución de la plataforma, esta no es una función que deba modificar nada

15
00:01:01,160 --> 00:01:07,730
‫en la clase y sería un error realmente si lo olvidáramos porque sería extraño si llamara esto y lo

16
00:01:07,730 --> 00:01:14,480
‫usara y si la declaración realmente cambiara la ubicación de la plataforma o si actualizó la distancia de movimiento o

17
00:01:14,480 --> 00:01:16,220
‫la velocidad de la plataforma.

18
00:01:16,760 --> 00:01:20,510
‫Entonces, para mantenernos honestos con eso, podemos hacerlo constante.

19
00:01:20,510 --> 00:01:28,570
‫Y la forma en que hacemos esto es colocando la palabra clave de contacto después de los paréntesis de la función.

20
00:01:28,580 --> 00:01:30,710
‫A menudo dejamos un espacio aquí también.

21
00:01:31,310 --> 00:01:38,330
‫Ahora, para que coincida correctamente con la función en el archivo C++, también tenemos que

22
00:01:38,330 --> 00:01:41,600
‫poner esa palabra clave const allí.

23
00:01:41,750 --> 00:01:46,670
‫Ahora, como dije, esto hace que sea un error hacer cualquier cosa que modifique la clase.

24
00:01:46,680 --> 00:01:53,210
‫Entonces, si la plataforma regresara, intentaría modificar una variable de clase como la distancia de movimiento.

25
00:01:53,570 --> 00:01:56,810
‫Podría intentar establecer la distancia de movimiento en 200.

26
00:01:57,350 --> 00:02:01,550
‫Veamos qué sucede cuando pasamos a irreal y presionamos el botón de compilación.

27
00:02:01,640 --> 00:02:01,990
‫Bueno.

28
00:02:02,000 --> 00:02:03,740
‫Puedes ver que ahora hay un error.

29
00:02:03,740 --> 00:02:08,900
‫No se puede compilar y si observa el error, puede ver que aquí se

30
00:02:08,900 --> 00:02:14,930
‫dice algo sobre no poder modificar algo porque se accede a través de un puntero de contacto.

31
00:02:15,200 --> 00:02:17,270
‫Ahora, no te preocupes por ese idioma.

32
00:02:17,270 --> 00:02:22,430
‫Es un poco difícil de interpretar, pero el punto es que la palabra clave const estaba allí y

33
00:02:22,430 --> 00:02:25,690
‫dice que no puede modificar algo y eso es crucial.

34
00:02:25,700 --> 00:02:31,760
‫Además, si llamó a alguna función que no está marcada como constante, eso también es un problema.

35
00:02:31,760 --> 00:02:37,930
‫Entonces, si bien está bien llamar para obtener la ubicación del actor, esa es una función de contacto, no cambia nada.

36
00:02:37,930 --> 00:02:39,170
‫Solo obtiene la ubicación.

37
00:02:39,530 --> 00:02:46,310
‫No está bien llamar a una ubicación de actor establecida que no se ha marcado como const.

38
00:02:46,550 --> 00:02:48,080
‫Y entonces no es válido.

39
00:02:48,080 --> 00:02:50,250
‫Podría estar modificando la clase.

40
00:02:50,250 --> 00:02:55,520
‫Por lo tanto, cualquier función que no esté marcada como consciente no puede llamarse desde dentro de una función de contacto.

41
00:02:56,120 --> 00:02:58,700
‫Y así se puede ver un problema emergente.

42
00:02:58,700 --> 00:03:05,870
‫En realidad, no podemos llamar a mover la distancia desde dentro del retorno de la plataforma asegurada porque el retorno de la plataforma es constante,

43
00:03:05,870 --> 00:03:09,410
‫pero la distancia que se mueve no se ha marcado como tal.

44
00:03:09,620 --> 00:03:16,220
‫Entonces, cargue rápidamente para obtener la constante de movimiento de distancia, haga que obtenga la constante de movimiento de distancia, de modo que en el encabezado

45
00:03:16,220 --> 00:03:19,070
‫y vea el archivo p, agregará las palabras clave constantes.

46
00:03:19,070 --> 00:03:23,810
‫Hágale saber a C++ que no debe modificar la clase y compila.

47
00:03:23,810 --> 00:03:25,850
‫Ahora pausa el video y pruébalo.

48
00:03:29,260 --> 00:03:29,730
‫Bueno.

49
00:03:29,740 --> 00:03:30,340
‫Bienvenido de nuevo.

50
00:03:30,370 --> 00:03:32,800
‫Así que vamos a ir primero al encabezado del archivo.

51
00:03:32,800 --> 00:03:37,090
‫Y después de los paréntesis de cierre, agregaremos un concepto de espacio y luego regresaremos

52
00:03:37,090 --> 00:03:38,290
‫al archivo C++.

53
00:03:38,650 --> 00:03:42,340
‫Y después de que la distancia se mueva entre paréntesis, vamos a poner el concurso espacial.

54
00:03:42,820 --> 00:03:47,650
‫Ahora, las líneas onduladas debajo de la distancia movida deberían actualizarse en un poco de tiempo.

55
00:03:47,650 --> 00:03:53,230
‫Pero si vamos a Unreal y presionamos el botón de compilación, ese será el árbitro definitivo en cuanto a si al compilador

56
00:03:53,230 --> 00:03:55,570
‫le gusta lo que hemos hecho o no.

57
00:03:55,750 --> 00:04:02,200
‫Y esta vez la compilación se ha realizado con éxito, lo que significa que hemos actualizado correctamente nuestro

58
00:04:02,200 --> 00:04:02,860
‫código.

59
00:04:03,220 --> 00:04:08,650
‫Y eso tiene sentido porque no hay nada que se llame desde que se mueva la distancia que no sea contacto, que

60
00:04:08,890 --> 00:04:10,510
‫no esté tratando de cambiar nada.

61
00:04:10,930 --> 00:04:17,830
‫Y donde estamos llamando a una función en caso de que la plataforma regrese, solo estamos usando funciones de contacto y

62
00:04:18,040 --> 00:04:24,100
‫esta es una forma de aumentar la seguridad de nuestro código porque las funciones no cambiarán cosas sin

63
00:04:24,430 --> 00:04:26,170
‫que nosotros lo sepamos.

64
00:04:26,200 --> 00:04:30,730
‫Ahora, como un pequeño ejercicio para usted mismo, es posible que desee revisar y ver todas las funciones que

65
00:04:30,730 --> 00:04:35,170
‫hemos estado usando hasta ahora y ver cuáles de ellas están marcadas como constantes y cuáles no.

66
00:04:35,500 --> 00:04:41,800
‫Puede hacer esto simplemente pasando el cursor sobre una función como llegar a una ubicación y ver si la ventana

67
00:04:41,800 --> 00:04:45,970
‫emergente que está incluida, si después del paréntesis tiene contacto o no.

68
00:04:46,270 --> 00:04:53,170
‫Puede decir que con la ubicación activa al pasar el cursor sobre ella me da const al pasar el ratón por encima de get name también me

69
00:04:53,170 --> 00:04:55,300
‫da que esto es constante y tiene sentido.

70
00:04:55,330 --> 00:04:59,290
‫Ninguno de los dos debería cambiar el estado de nuestra clase.

71
00:04:59,860 --> 00:05:03,790
‫Ahora, si me desplacé sobre tick, puedes ver que este no está marcado como constante.

72
00:05:03,790 --> 00:05:10,030
‫Eso tiene sentido porque Tick generalmente se usa para actualizar la posición de una clase en el mundo o cualquiera de los estados

73
00:05:10,030 --> 00:05:11,080
‫de la clase.

74
00:05:11,620 --> 00:05:13,210
‫Y tenemos nuestro vector.

75
00:05:13,360 --> 00:05:18,820
‫Si nos desplazamos sobre, get the safe, normal, puede ver que está marcado como constante porque

76
00:05:18,820 --> 00:05:24,760
‫get safe normal en realidad no modifica el vector, solo devuelve un valor con un nuevo vector en él.

77
00:05:24,820 --> 00:05:25,480
‫Eso es todo.

78
00:05:25,480 --> 00:05:32,380
‫Para esta lección, hemos aprendido a agregar const a nuestras funciones para aumentar la seguridad de nuestro código.

79
00:05:32,590 --> 00:05:33,790
‫Te veré en la próxima.

