Affirmer C ++

Affirmer C ++
Le langage C ++ a publié des instructions d'affirmation pour aider les programmeurs à vérifier les conditions ou les déclarations qui peuvent être logiquement incorrectes. Dans cet article C ++ aujourd'hui, nous utiliserons l'instruction «ASSERT» dans nos exemples pour illustrer son travail sur les erreurs de lancer en cas de problème logique. Si vous cherchez une aide à déboguer de telles déclarations, vous avez la chance d'avoir cet article. Commençons notre nouvel article C ++ en ouvrant l'application de la console de shell de l'Ubuntu 20.04 Système avec le raccourci clé «Ctrl + Alt + T».

Vous allez créer un nouveau fichier C ++ dans votre terminal. Cela doit être fait en utilisant la requête «Touch» dans la coquille. Ainsi, la requête utilisée à cet effet a été affichée dans l'image en dessous.

Maintenant, le fichier est placé dans l'explorateur de fichiers domestiques du système Linux. Nous devons ouvrir ce fichier C ++ dans l'un de nos éditeurs installés, i.e., vim, texte ou nano. Donc, nous avons choisi l'éditeur GNU Nano à cet effet. La commande pour ouvrir ce nouveau fichier est affichée ci-dessous.

Exemple 01

Commençons par le tout premier exemple d'utilisation de l'instruction ASSERT dans le code C ++ pour valider la logique de certaines instructions de code. Nous avons commencé le code avec les fichiers d'en-tête. L'ajout d'un en-tête de flux d'entrée-sortie est nécessaire lorsque vous travaillez dans la plate-forme C ++. L'espace de noms standard est un must en C ++ avec le mot-clé «utilise» et «std», comme vous pouvez également le voir sur l'image. Pour l'utilisateur de l'instruction «ASSERT», nous devons ajouter le fichier d'en-tête d'affirmer pour le rendre fonctionnel. Ainsi, nous avons ajouté le «affirmation.Fichier d'en-tête h ”avec le mot-clé« #include ». La méthode principale () a été lancée pour faire l'exécution.

Nous avons initialisé une variable entière nommée «Val» avec une valeur de 13. À la prochaine ligne consécutive, la variable «Val» a été remplacée avec une autre valeur de 15. L'instruction ASSERT a été utilisée après cela pour vérifier si la variable «Val» a égal à la valeur 13. Comme il est logiquement incorrect et que la variable «val» a été remplacée par la valeur 15, il lèvera une exception. Enregistrons le code après la fin d'une fonction Main () avec «Ctrl + S». Après économie, nous devons revenir au terminal à des fins de compilation et d'exécution avec «Ctrl + X».

Pour la compilation de code C ++, vous devez avoir besoin d'un compilateur configuré dans votre Ubuntu 20.04 Système. Ainsi, nous utilisons l'instruction de compilation G ++ dans le shell pour compiler le fichier «Affirmer.CC ". La compilation ne renvoie rien en retour nous permet de clairement que le code est syntaxiquement correct tout au long. Exécutons simplement le fichier avec notre éternel "./un.Out ”Command dans la console. L'exécution d'un fichier renvoie l'erreur en retour car l'instruction ASSERT renvoie false en retour. La sortie est présentée dans l'image apposée.

Si vous souhaitez éviter la sortie d'erreur affirmée par l'instruction ASSERT, vous devez définir l'indicateur sans débogage dans votre code C ++. À cette fin, vous devez utiliser le mot-clé «définir» avec le panneau de hachage et «ndebug» comme drapeau dans la zone d'en-tête. Ainsi, nous avons ouvert le même fichier et ajouté l'espace de noms après le fichier d'en-tête «IO». Après l'espace de noms standard, nous avons défini le drapeau «ndebug» dans l'en-tête et utilisé le «affirmer.en tête h ”après elle. Assurez-vous de ne pas modifier la séquence des en-têtes illustrée ci-dessous. Dans la fonction principale (), nous avons ajouté l'instruction COUT à la sortie que l'affirmation de la désactivation a réussi.

Compilons et exécutons à nouveau ce code mis à jour dans le shell. En faisant cela, nous n'avons aucune erreur cette fois en utilisant le «ndebug» dans notre zone d'en-tête.

Exemple 02

Ayons un nouvel exemple d'utilisation de l'instruction ASSERT dans le code C ++. Mais cette fois, nous utiliserons l'instruction ASSERT dans une fonction définie par l'utilisateur. Ainsi, nous avons ajouté les fichiers d'en-tête et l'espace de noms standard au début du code dans une séquence. La méthode définie par l'utilisateur nommé «Show ()» a été déclarée, prenant la valeur du pointeur de type entier dans son paramètre.

Dans la fonction show (), nous utilisons l'instruction «ASSERT» pour voir si le pointeur passé dans le paramètre n'est pas nul. S'il est nul, l'erreur sera lancée. L'instruction COUT affichera ensuite la valeur d'une variable que le pointeur «V» pointe vers. Dans la fonction principale, nous avons initialisé une variable entière «Val» avec une valeur de 13. Deux pointeurs «A» et «B» ont été initialisés à Null. L'adresse de la variable «Val» a été liée au pointeur «A». La fonction show () a été appelée avec le pointeur de passage «A» et «B» séparément pour produire différents résultats. Le deuxième appel pour montrer la fonction doit lancer une exception car il prend le pointeur nul, et l'instruction ASSERT renvoie false en retour. Enregistrons et exécutons le code.

Après avoir exécuté ce morceau de code, nous avons obtenu le même résultat que nous avons discuté ci-dessus. Il montre le résultat 13 pour le premier appel de fonction, je.e., Pointer passé «A», tandis que l'autre appel de fonction montre l'erreur.

Pour rectifier cette erreur, il vous suffit de lier le pointeur «B» avec la variable «Val» également. Ainsi, nous avons fait la même chose dans le code inférieur. Nous avons remplacé la variable «Val» par V1 et ajouté une autre variable, «V2». La variable V1 a été liée au pointeur «A» et V2 a été lié au pointeur «B». Le script global reste le même que celui indiqué.

Après le débogage et l'exécution du code, aucune erreur n'a été trouvée jusqu'à présent. Les valeurs des variables V1 et V2 ont été affichées avec succès, comme indiqué ci-dessous.

Exemple 03

Termons avec le dernier mais non le moindre exemple d'une instruction ASSERT dans le code C ++. Le code contient les deux instructions ASSERT et deux instructions COUT. La première instruction ASSERT consiste à vérifier si la multiplication se traduit par la même sortie. Comme la condition est correcte logiquement, il doit retourner vrai et aucune erreur ne sera affichée. L'instruction COUT sera exécutée affichant que la première instruction était correcte. L'autre instruction ASSERT vérifie à nouveau si la multiplication des deux côtés renvoie la même sortie. Comme la sortie ne serait pas la même, elle sera logiquement incorrecte. Par conséquent, il reviendra faux. Pour cette raison, l'erreur se produira et l'instruction COUT ne sera pas exécutée après cela.

En raison d'une erreur logique, le programme se termine automatiquement après l'exécution du premier cout.

Pour résoudre ce problème, nous utiliserons l'indicateur «ndebug» dans le code comme nous l'avons fait jusqu'à présent.

Cette fois, aucune erreur n'a été affichée, et les deux instructions COUT sont exécutées.

Conclusion

L'article concerne l'utilisation de l'énoncé de l'affirmation C ++. Nous avons fait de notre mieux pour démontrer son travail via la fonction principale () et la fonction définie par l'utilisateur. Nous avons également discuté de la façon de désactiver l'affirmation en C ++, i.e., le drapeau ndebug. Nous espérons que tous les exemples vous fourniront une immense aide.