‫Hola y bienvenido.
‫En esta lección, vamos a ver el equivalente en C++ de las funciones blueprint puras, que son
‫las funciones CONST.
‫Vamos a ver qué es esta palabra clave, cómo la usamos y cómo restringe lo que podemos hacer en
‫nuestro código para estar más seguros.
‫Vamos a sumergirnos y ver cómo funciona.
‫En los planos, pudimos hacer una función pura, y eso significaba que podíamos eliminar la
‫necesidad de los pines de ejecución.
‫Ahora, en C++, podemos hacer algo un poco más fuerte, que es crear un concepto de función.
‫Ahora, ¿qué significa hacer que una función sea constante?
‫Significa que esa función no puede modificar el estado de su clase y, de hecho, las reglas del compilador
‫la imponen.
‫Así que déjame darte un ejemplo.
‫Si tuviera que eliminar la función de devolución de la plataforma, esta no es una función que deba modificar nada
‫en la clase y sería un error realmente si lo olvidáramos porque sería extraño si llamara esto y lo
‫usara y si la declaración realmente cambiara la ubicación de la plataforma o si actualizó la distancia de movimiento o
‫la velocidad de la plataforma.
‫Entonces, para mantenernos honestos con eso, podemos hacerlo constante.
‫Y la forma en que hacemos esto es colocando la palabra clave de contacto después de los paréntesis de la función.
‫A menudo dejamos un espacio aquí también.
‫Ahora, para que coincida correctamente con la función en el archivo C++, también tenemos que
‫poner esa palabra clave const allí.
‫Ahora, como dije, esto hace que sea un error hacer cualquier cosa que modifique la clase.
‫Entonces, si la plataforma regresara, intentaría modificar una variable de clase como la distancia de movimiento.
‫Podría intentar establecer la distancia de movimiento en 200.
‫Veamos qué sucede cuando pasamos a irreal y presionamos el botón de compilación.
‫Bueno.
‫Puedes ver que ahora hay un error.
‫No se puede compilar y si observa el error, puede ver que aquí se
‫dice algo sobre no poder modificar algo porque se accede a través de un puntero de contacto.
‫Ahora, no te preocupes por ese idioma.
‫Es un poco difícil de interpretar, pero el punto es que la palabra clave const estaba allí y
‫dice que no puede modificar algo y eso es crucial.
‫Además, si llamó a alguna función que no está marcada como constante, eso también es un problema.
‫Entonces, si bien está bien llamar para obtener la ubicación del actor, esa es una función de contacto, no cambia nada.
‫Solo obtiene la ubicación.
‫No está bien llamar a una ubicación de actor establecida que no se ha marcado como const.
‫Y entonces no es válido.
‫Podría estar modificando la clase.
‫Por lo tanto, cualquier función que no esté marcada como consciente no puede llamarse desde dentro de una función de contacto.
‫Y así se puede ver un problema emergente.
‫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,
‫pero la distancia que se mueve no se ha marcado como tal.
‫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
‫y vea el archivo p, agregará las palabras clave constantes.
‫Hágale saber a C++ que no debe modificar la clase y compila.
‫Ahora pausa el video y pruébalo.
‫Bueno.
‫Bienvenido de nuevo.
‫Así que vamos a ir primero al encabezado del archivo.
‫Y después de los paréntesis de cierre, agregaremos un concepto de espacio y luego regresaremos
‫al archivo C++.
‫Y después de que la distancia se mueva entre paréntesis, vamos a poner el concurso espacial.
‫Ahora, las líneas onduladas debajo de la distancia movida deberían actualizarse en un poco de tiempo.
‫Pero si vamos a Unreal y presionamos el botón de compilación, ese será el árbitro definitivo en cuanto a si al compilador
‫le gusta lo que hemos hecho o no.
‫Y esta vez la compilación se ha realizado con éxito, lo que significa que hemos actualizado correctamente nuestro
‫código.
‫Y eso tiene sentido porque no hay nada que se llame desde que se mueva la distancia que no sea contacto, que
‫no esté tratando de cambiar nada.
‫Y donde estamos llamando a una función en caso de que la plataforma regrese, solo estamos usando funciones de contacto y
‫esta es una forma de aumentar la seguridad de nuestro código porque las funciones no cambiarán cosas sin
‫que nosotros lo sepamos.
‫Ahora, como un pequeño ejercicio para usted mismo, es posible que desee revisar y ver todas las funciones que
‫hemos estado usando hasta ahora y ver cuáles de ellas están marcadas como constantes y cuáles no.
‫Puede hacer esto simplemente pasando el cursor sobre una función como llegar a una ubicación y ver si la ventana
‫emergente que está incluida, si después del paréntesis tiene contacto o no.
‫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
‫da que esto es constante y tiene sentido.
‫Ninguno de los dos debería cambiar el estado de nuestra clase.
‫Ahora, si me desplacé sobre tick, puedes ver que este no está marcado como constante.
‫Eso tiene sentido porque Tick generalmente se usa para actualizar la posición de una clase en el mundo o cualquiera de los estados
‫de la clase.
‫Y tenemos nuestro vector.
‫Si nos desplazamos sobre, get the safe, normal, puede ver que está marcado como constante porque
‫get safe normal en realidad no modifica el vector, solo devuelve un valor con un nuevo vector en él.
‫Eso es todo.
‫Para esta lección, hemos aprendido a agregar const a nuestras funciones para aumentar la seguridad de nuestro código.
‫Te veré en la próxima.