Fonction virtuelle pure en C ++

Fonction virtuelle pure en C ++
Une fonction virtuelle pure dans le langage de programmation C ++ est un concept largement connu dans l'héritage C ++. Cette fonction virtuelle peut être utilisée dans la classe abstraite. Il ne peut être indiqué que dans la classe abstrait, et il ne peut pas être défini. La valeur de la déclaration de la fonction virtuelle pure est 0. Ainsi, cet article est mis en œuvre pour déterminer comment la fonction virtuelle pure peut être indiquée dans la classe de base et définie dans la classe dérivée.

Remarque: Le système d'exploitation utilisé dans ce tutoriel est Ubuntu 20.04. Vous pouvez utiliser d'autres distributions de distros Linux ou Windows. Le compilateur G ++ a été utilisé pour la mise en œuvre d'exemples.

Exemple 01

Nous commençons par un exemple simple pour illustrer le travail global et la structure d'une fonction virtuelle pure dans la classe abstraite C ++. Vous devez savoir qu'une classe abstraite n'occupe aucun objet, je.e., pas instancié. Cependant, nous pouvons utiliser des pointeurs ou des références pour accéder à cette classe et à ses fonctions. Alors, créez un nouveau fichier C ++ à l'aide du «touche”Interroger et l'ouvrir avec un éditeur, comme Nano Editor.

$ touch pure.CC
$ nano pure.CC

Chaque code C ++ commence par l'en-tête de flux d'entrée-sortie inclus. La norme de l'espace de noms doit être déclarée après cela. Une classe abstraite a été initialisée nommée «Parent». Il contient une seule déclaration de fonction virtuelle pure appelée «montrer()". Cette fonction pure a été initialisée avec 0. La classe dérivée nommée «Enfant"A été initialisé. Cette classe d'enfants a accédé à la classe parentale tout en l'utilisant comme interface. La classe d'enfants contient la définition d'une méthode show (). La méthode show () a affiché du texte avec le "couter»Clause. Voici la méthode principale (). Tout le travail devrait commencer à partir d'ici:

Au début d'une méthode Main (), le pointeur de classe parent «* P" a été créé. Comme la classe parent est abstraite, nous ne pouvons pas créer son objet. La classe d'enfants a été initiée avec l'objet "c". Le pointeur "* P"De la classe parent a accédé à l'adresse de l'objet de classe enfant"c". Puis le pointeur "* P"Appelle la fonction virtuelle pure"montrer()"Par une référence. Après avoir enregistré le code virtuel Pure C ++, compilez-le avec le package du compilateur G ++. Aucune erreur n'a été trouvée jusqu'à présent. Après avoir exécuté le fichier, nous avons la sortie suivante:

$ g ++ pure.CC
$ ./un.dehors

Le résultat de cette illustration peut être analysé dans l'image ci-dessus.

Exemple 02

Regardons un autre exemple d'utilisation d'une fonction virtuelle pure en C++. Nous ferons quelques calculs mathématiques dans la méthode virtuelle pure. Alors, commencez par ouvrir le même fichier et modifiez-le un peu. Ajoutez le package d'en-tête du flux d'entrée-sortie et utilisez également l'espace de noms standard dans le code. Nous avons déclaré une classe abstraite nommée «Résultat"Après l'espace de noms. Cette classe contient une variable de type entier protégé nommée «score”Utilisé pour obtenir des marques de l'utilisateur.

Une méthode de type public simple a été définie dans la classe abstraite nommée «getScore ()". Le "couter"La clause de cette méthode oblige l'utilisateur à saisir un score. Les fonctions obtiendraient les marques de l'utilisateur en entrée via le «cin»Clause. Ensuite, la fonction virtuelle pure «pourcentage()«Est déclaré à 0 ici. La classe dérivée "Statut"Est défini pour obtenir le pourcentage étudiant en accédant à la classe parent comme une interface. Le «statut» de classe d'enfants contient la définition d'une méthode virtuelle pure «pourcentage()"Dedans:

Le pourcentage de fonction virtuelle pure () calcule le pourcentage de marques d'étudiants. Ce pourcentage se trouve à l'aide d'une formule en pourcentage en utilisant les marques d'un étudiant. Les marques ont été obtenues par la variable "score”Avoir des marques entrées par l'utilisateur. La fonction principale () contient la création d'objets de la classe enfant. Cet objet est utilisé pour appeler la méthode getScore () pour acquérir des notes de l'utilisateur. Le même objet est utilisé pour appeler la fonction pourcentage () pour calculer le pourcentage de marques saisies par l'utilisateur.

Enregistrons d'abord le code et quittons le fichier en utilisant "Ctrl + s" et "Ctrl + s", respectivement.

Après être revenu au terminal, compilez d'abord le code avec le package du compilateur G ++. Après cela, exécutez le fichier avec le «un.dehors" mettre en doute. Il vous demandera de saisir vos notes. Nous avons ajouté trois marques différentes à chaque exécution et avons obtenu trois pourcentages différents à chaque fois.

$ g ++ pure.CC
$ ./un.dehors

Le résultat de cette illustration peut être analysé dans l'image ci-dessus.

Conclusion

Enfin, nous avons utilisé les exemples d'utilisation d'une fonction virtuelle pure dans la classe abstraite C ++. Nous avons utilisé des classes abstraites et dérivées pour illustrer le concept de fonction virtuelle pure. Sur la base des informations fournies, nous pensons qu'il vous sera facile de travailler sur des fonctions virtuelles pures à partir de maintenant. Merci d'avoir lu cet article et veuillez consulter les autres articles fournis par Linuxhint.com.