Dynamic_cast c ++

Dynamic_cast c ++
Le casting dynamique dans le langage de programmation C ++ sera discuté dans cet article. Pour commencer, nous devons comprendre la notion de casting et de nombreux types de casting. Le processus de modification du type de données d'une variable est connu sous le nom de casting. La coulée est divisée en deux catégories dans le langage de programmation C ++: casting implicite et casting explicite.

Conversion du type de données en C ++:

Le moulage de type est la procédure de modification du type de données à un autre type de données. Il existe deux types de châtiment ou de conversion de type dans le langage de programmation C ++: le casting implicite et explicite. La conversion de type automatisé est un autre nom pour la dactylographie implicite. Il est effectué par le compilateur pendant la compilation en temps réel et n'a besoin d'aucune entrée ou action utilisateur. Lorsqu'il existe deux types de types de données dans une expression, cette forme de moulage se produit. Par exemple:

Dans le code donné, nous pouvons voir qu'une variable entière et une variable de caractères sont insérées dans la dernière expression de ligne, et la valeur de la variable entière «i» est modifiée. L'équivalent numéro ASCII de «A» sera converti en valeur de caractère et ajouté à la valeur entière de la variable «i» dans cette déclaration. Si la valeur de la variable «i» est imprimée, le résultat sera un total de ces deux valeurs. Le compilateur transforme automatiquement le type de données de la variable de caractère en un type de données entier en les convertissant en valeur standard ASCII de l'alphabet à droite, ce qui est un excellent exemple de conversion de type implicite ou automatisé sur le temps d'exécution.

Maintenant, en ce qui concerne le casting de type explicite ou la conversion de type, ce n'est pas un processus automatisé; l'utilisateur doit convertir manuellement un type de données d'une variable en un autre type de variable dans le code. Les types de données sont généralement organisés dans une hiérarchie en fonction de leur espace mémoire et de la quantité d'informations qu'ils peuvent contenir. Ainsi, lorsqu'un type de données de commande inférieur est utilisé pour stocker toutes les informations, mais doit être transformé en un type de données d'ordre supérieur afin que la perte d'informations puisse être minimisée et que de plus en plus d'informations peuvent être stockées, le casting de type explicite ou la conversion de type est généralement fait. Par exemple, comme une variable de type entier ne peut pas stocker des valeurs après le point décimal, nous pouvons perdre des informations si nous continuons à utiliser des variables entières. Pour éviter cette perte, nous convertissons la variable entière en une variable flottante, enregistrant des valeurs après décimales et empêchant la perte d'informations. La conversion de type explicite dans le langage de programmation C ++ peut être réalisée de deux manières: via l'affectation ou en utilisant l'opérateur de fonte. La conversion d'attribution est effectuée dans une expression de code, et la syntaxe de cette expression est fournie ci-dessous.

# «(Type de données) Expression»

Dans le code ci-dessus, nous devons mettre un type de données valide dans le support, et après le support, nous devons écrire la variable ou l'expression que nous souhaitons modifier dans le type de données écrit dans le support.

Nous allons maintenant examiner le type de conversion effectué par les opérateurs de distribution dans le langage de programmation C ++. Les opérateurs de fonte sont également appelés opérateurs unaires qui obligent une variable à changer son type de données de l'un existant à un autre. Il existe quatre types d'opérateurs de moulage: casting statique, casting dynamique, casting const et réinterpréter le casting.

Coulage dynamique en C ++:

La coulée dynamique dans le langage de programmation C ++ est basée sur un concept appelé RTTI (Identification du type de temps d'exécution). RTTI est une fonction présente dans plusieurs langages de programmation comme C / C ++, Ada et Object Pascal. L'identification ou les informations du type d'exécution est une fonction qui identifie et extrait les informations concernant les détails du type de données d'un objet sur le temps d'exécution d'un programme. Cette fonction fournit un chemin sûr pour les méthodes de coulée de type comme la fonction «typeid» ou le coulage de type dynamique. Il détecte les informations sur le type de données sur le temps d'exécution et aide la conversion du type de données lorsque les opérateurs sont en jeu.

La coulée dynamique est principalement utilisée en C ++ pour le casting en toute sécurité du temps d'exécution. Pour travailler avec le casting dynamique, la classe de base doit avoir 1 fonction virtuelle. Dynamic Cast ne fonctionne qu'avec des classes de base polymorphes car elle utilise ces informations pour déterminer le casting en toute sécurité. Un opérateur de distribution dynamique fait une coulée dynamique. Maintenant que nous connaissons les concepts liés à la coulée dynamique, nous pouvons aller vers la partie de mise en œuvre. Examinons d'abord la syntaxe pour l'utilisation de la coulée dynamique dans le langage de programmation C ++, qui est écrit ci-dessous:

# "Dynamic_cast (expression)"

Dans l'expression ci-dessus, la première partie décrit le nom de l'opérateur; Dans les supports d'angle, nous écrivons le nom du type de données dans lequel nous avons besoin pour convertir notre expression, et dans les crochets, nous écrivons le nom de la variable ou de l'objet que nous voulons convertir.

Maintenant que nous savons comment utiliser l'opérateur de fonte dynamique et remplir les paramètres pour convertir les types de variables de données, nous pouvons l'utiliser pour convertir les types de variables de données.

Utilisation de la méthode de distribution dynamique dans Ubuntu 20.04:

Pour mettre en œuvre ce concept, nous devons utiliser plusieurs classes pour travailler pour convertir des objets de la classe par héritage. Donc, pour le faire d'abord, nous devons d'abord savoir que le fichier du programme C ++ dans l'environnement Ubuntu est stocké avec l'extension ".CPP, «donc pour créer ce fichier sur notre bureau, ouvrez un terminal et tapez« CD Desktop »sur la ligne de commande, puis appuyez sur Entrée et tapez« Touch FileName .cpp "pour créer un fichier avec le".Extension CPP ». Maintenant, nous allons écrire un code dans ce fichier pour créer une classe de base et 2 classes dérivées, et dans le code du pilote, nous utiliserons l'opérateur de distribution dynamique.

Quittez le fichier après avoir cliqué sur le bouton Enregistrer. Retournez au terminal et créez le fichier à l'aide de la commande «G ++» avec votre nom de fichier et le «.Extension CPP ». Un fichier avec l'extension ".out »sera créé en utilisant cette commande. Vous pouvez maintenant exécuter ce fichier en entrant "./ »Suivi de votre«.Extension out ».

Dans ce programme, le pointeur de classe de base stocke les objets de classe 1 dérivés (D1). La classe de base de coulée dynamique, le pointeur a conservé l'objet dérivé1 et l'a alloué à la classe 1 dérivée, qui a fourni un casting dynamique valide.

Conclusion:

Cet article nous a appris la méthode de casting de type utilisée dans le langage de programmation C ++. Le type de moulage a également été discuté en détail, et nous nous sommes concentrés sur la nécessité de la raison pour laquelle nous utilisons de telles méthodes dans la programmation C ++. Nous avons discuté de la fonction d'assistance qui aide à la conversion du type de données de la variable en récupérant les informations et en vérifiant la conversion correcte appelée RTTI. Nous avons également implémenté le concept de coulée dynamique en utilisant l'opérateur de fonte dynamique dans une expression dans le langage de programmation C ++ dans l'Ubuntu 20.04 Environnement.