Afirmar c ++

Afirmar c ++
El lenguaje C ++ ha salido con declaraciones de afirmación para ayudar a los programadores a verificar las condiciones o declaraciones que pueden ser lógicamente incorrectas. Dentro de este artículo de C ++ hoy, utilizaremos la declaración "Afirmar" en nuestros ejemplos para ilustrar su trabajo sobre los errores de lanzar si hay algún problema lógico. Si está buscando ayuda para depurar tales declaraciones, tiene la suerte de tener este artículo. Comencemos nuestro nuevo artículo de C ++ abriendo la aplicación de la consola Shell del Ubuntu 20.04 Sistema con el atajo de tecla "Ctrl+Alt+T".

Creará un nuevo archivo C ++ en su terminal. Esto debe hacerse utilizando la consulta "toque" dentro de la carcasa. Por lo tanto, la consulta utilizada para este propósito se ha mostrado en la imagen debajo.

Ahora, el archivo se coloca en el explorador de archivos inicio del sistema Linux. Tenemos que abrir este archivo C ++ dentro de uno de nuestros editores instalados, yo.mi., vim, texto o nano. Entonces, hemos estado eligiendo el editor de GNU Nano para este propósito. El comando para abrir este nuevo archivo se muestra a continuación.

Ejemplo 01

Comencemos con el primer ejemplo de usar la instrucción ASSERT en el código C ++ para validar la lógica de algunas declaraciones de código. Hemos comenzado el código con los archivos de encabezado. La adición de un encabezado de flujo de entrada-salida es necesaria cuando trabaja dentro de la plataforma C ++. El espacio de nombres estándar es imprescindible en C ++ con la palabra clave "usando" y "std" en él, como puede ver también en la imagen. Para el usuario de la declaración de "afirmar", necesitamos agregar el archivo de encabezado de afirmar para hacerlo funcional. Por lo tanto, hemos agregado el "Afirmar.H "Archivo de encabezado con la palabra clave" #include ". El método main () se ha comenzado a hacer la ejecución.

Hemos inicializado una variable entera llamada "Val" con un valor de 13. En la siguiente línea consecutiva, la variable "Val" ha sido anulada con otro valor de 15. La declaración de afirmación se ha utilizado después de eso para verificar si la variable "Val" tiene igual al valor 13. Como es lógicamente incorrecto y la variable "val" ha sido anulada con el valor 15, lanzará una excepción. Guardemos el código después de la finalización de una función Main () con "Ctrl+S". Después de guardar, necesitamos volver al terminal para fines de compilación y ejecución con "Ctrl+X".

Para la compilación de código C ++, debe necesitar algún compilador configurado en su Ubuntu 20.04 sistema. Por lo tanto, hemos estado utilizando la instrucción de compilación G ++ en el shell para compilar el archivo "afirmar.CC ". La compilación no devuelve nada a cambio es dejar en claro que el código es sintácticamente correcto en todo. Ejecutemos el archivo con nuestra eterna "./a.Comando fuera "en la consola. La ejecución de un archivo devuelve el error al rendimiento, ya que la declaración de afirmación devuelve falso en el rendimiento. La salida se presenta en la imagen fijada.

Si desea evitar la salida de error afirmado por la instrucción ASSERT, entonces debe definir el indicador de depuración no dentro de su código C ++. Para ese propósito, debe usar la palabra clave "Definir" con el signo hash y "ndebug" como una bandera en el área del encabezado. Por lo tanto, abrimos el mismo archivo y agregamos el espacio de nombres después del archivo de encabezado "IO". Después del espacio de nombres estándar, hemos definido la bandera "ndebug" en el encabezado y usamos el "afirmar.H "encabezado después de eso. Asegúrese de no cambiar la secuencia de encabezados que se muestran a continuación. Dentro de la función Main (), hemos agregado la instrucción CoUT a la salida que la discapacidad de afirmación ha sido exitosa.

Vamos a compilar y ejecutar este código actualizado nuevamente en el shell. Al hacer eso, esta vez no tenemos errores al usar el "ndebug" en nuestro área de encabezado.

Ejemplo 02

Tengamos un nuevo ejemplo de usar la instrucción ASSERT en el código C ++. Pero esta vez, utilizaremos la instrucción ASSERT dentro de alguna función definida por el usuario. Por lo tanto, hemos agregado los archivos de encabezado y el espacio de nombres estándar al comienzo del código en una secuencia. Se ha declarado el método de defensa del usuario llamado "show ()", tomando el valor del puntero de tipo entero en su parámetro.

Dentro de la función show (), hemos estado utilizando la instrucción "afirmar" para ver si el puntero aprobado en el parámetro no es nulo. Si es nulo, el error se lanzará. La instrucción Cout mostrará el valor de una variable que apunta el puntero "V". Dentro de la función principal, hemos inicializado una variable entera "val" con un valor de 13. Se han inicializado dos punteros "A" y "B". La dirección de la variable "val" se ha unido con el puntero "a". La función show () se ha llamado con el puntero de paso "A" y "B" por separado para obtener diferentes resultados. La segunda llamada para mostrar la función debe lanzar una excepción porque toma el puntero nulo, y la declaración de afirmación devuelve falso a cambio. Guardemos y ejecutemos el código.

Después de ejecutar este código, tenemos el mismo resultado que hemos discutido anteriormente. Muestra el resultado 13 para la primera llamada de función, yo.mi., Pasó el puntero "A", mientras que la otra llamada de función muestra el error.

Para rectificar este error, solo necesita unir el puntero "B" con la variable "Val" también. Por lo tanto, hemos hecho lo mismo dentro del código de la carga a continuación. Hemos reemplazado la variable "Val" con V1 y agregamos otra variable, "V2". La variable V1 se ha unido con el puntero "A" y V2 se ha unido con el puntero "B". El script general sigue siendo el mismo que se muestra.

Después de la depuración del código y la ejecución, hasta ahora no se han encontrado errores. Tanto los valores para las variables V1 como V2 se han mostrado con éxito, como se muestra a continuación.

Ejemplo 03

Terminemos con el último pero no el menos ejemplo de una declaración de afirmación en el código C ++. El código contiene las dos declaraciones de afirmación y dos declaraciones de Cout. La primera declaración de afirmación es verificar si la multiplicación da como resultado la misma salida. Como la condición es correcta lógicamente, debe devolver verdadero y no se mostrará ningún error. La declaración de Cout se ejecutará mostrando que la primera declaración fue correcta. La otra declaración de afirmación está marcando nuevamente si la multiplicación en ambos lados devuelve la misma salida. Como la salida no sería la misma, será lógicamente incorrecta. Por lo tanto, volverá falso. Debido a esto, el error ocurrirá, y la instrucción Cout no se ejecutará después de eso.

Debido al error lógico, el programa termina automáticamente después de la ejecución de la primera cout.

Para resolver este problema, utilizaremos el indicador "ndebug" en el código tal como lo hemos hecho hasta ahora.

Esta vez, no se ha mostrado ningún error, y ambas declaraciones de Cout se ejecutan.

Conclusión

El artículo trata sobre el uso de la declaración de afirmación de C ++. Hemos hecho todo lo posible para demostrar su trabajo a través de la función principal () y la función definida por el usuario. También hemos discutido la forma de deshabilitar la afirmación en C ++, yo.mi., la bandera ndebug. Esperamos que todos los ejemplos le brinden una inmensa ayuda.