Static_cast c ++

Static_cast c ++
Dans cet article, nous discuterons du concept de casting statique dans le langage de programmation C ++. Pour commencer par ce concept, nous devons connaître le concept de casting et son type. En termes simples, le casting modifie le type de données d'une variable dans un autre. Il existe deux types de moulage dans le langage de programmation C ++, un est implicite, et le second est un casting explicite.

Type Casting en C ++:

Dans le langage de programmation C ++, il existe deux formes de conversion de coulée ou de type qui sont:

  1. Casting de type implicite.
  2. Casting de type explicite.
  3. Coulage de type implicite:

La coulée de type implicite est également appelée conversion de type automatisé. Il est fait par le compilateur sur la compilation de temps d'exécution réel et ne nécessite aucune entrée ou action de l'utilisateur. Ce type de moulage se produit lorsque deux types de types de données sont présents dans une expression. Par exemple:

int k = 8;
char alph = «u»;
k = k + alph;

Ceci est un exemple parfait de conversion de type implicite ou automatisé. Le compilateur convertit automatiquement le type de données de la variable de caractère en un type de données entier en les tournant sur le temps d'exécution vers la valeur standard ASCII de l'alphabet.

Coulage de type explicite:

La conversion de coulée ou de type de type explicite n'est pas la conversion de type automatisé; L'utilisateur doit le faire lui-même dans le code pour convertir le type de données d'une variable en type de données d'une autre variable. Ainsi, la conversion de coulée ou de type de type explicite est généralement effectuée lorsqu'un type de données de commande plus petit est utilisé pour contenir des informations; Cependant, il doit être transformé en un type de données plus élevé pour éviter la perte de données et stocker plus de données. La conversion par affectation est effectuée dans une expression dans le code, et la façon d'écrire cette expression est indiquée ci-dessous:

# (type de données) Expression

Maintenant, nous examinerons les différents types de conversions que les opérateurs de distribution dans le langage de programmation C ++ peuvent faire. Les opérateurs de fonte, également appelés opérateurs unaires, obligent le type de données d'une variable pour passer d'un type à un autre. Les opérateurs de distribution peuvent faire quatre types de casting différents: casting statique, distribution dynamique, distribution de réinterpréter et cast const.

Opérateur de fonte statique en C ++:

Le casting statique est généralement utilisé lorsque nous devons convertir la variable d'énumération en flotteurs, entiers ou variables de type de données doubles dans le langage de programmation C ++. Il est également utilisé lorsque nous devons changer une variable de pointeur d'une classe de base à un pointeur dans une classe dérivée.

Dans la méthode de la distribution statique, il n'y a pas de contrôle pendant le temps d'exécution d'un programme pour la coulée de type par rapport au casting de type dynamique. La syntaxe utilisée pour exécuter une conversion de distribution statique dans le langage de programmation C ++ est écrite ci-dessous:

# static_cast (objet);

Dans l'expression ci-dessus, nous écrivons le type de données dans lequel nous voulons convertir notre variable entre les supports d'angle, et dans le support rond, nous écrivons le nom de la variable ou le nom du pointeur, quel type de données doit être converti.

Conversion du type de données de la variable flottante en un entier en utilisant la méthode de casting statique dans Ubuntu 20.04:

Dans le programme C ++, nous sommes parfois confrontés à une situation dans laquelle nous devons changer explicitement un type de données variable, nous devons donc utiliser la méthode de casting statique. Pour mettre en œuvre ce concept dans Ubuntu 20.04, ouvrez le terminal, accédez au répertoire de bureau en écrivant "CD Desktop", puis faites un .Fichier CPP en exécutant la commande «Touch» avec le nom de fichier et l'extension de .cpp. Ensuite, localisez et ouvrez votre .Fichier CPP sur le bureau

Nous avons ajouté une bibliothèque d'iOStream pour effectuer des opérations d'entrée et de sortie. Après cela, nous avons déclaré l'espace de noms Std. Ensuite, nous avons commencé notre fonction principale avec le type de données entier. À l'intérieur de notre fonction principale, nous avons une variable «F» avec un type de données flottantes et attribuons la valeur de «3.5 ”. Ensuite, nous avons une autre variable, «B» avec le type de données entier. Et a passé une coulée statique à la valeur de la variable «F». Ensuite, nous avons imprimé la variable «B» en utilisant COUT.

Le code ci-dessus doit être enregistré; Cliquez sur le bouton Enregistrer alloué sur la barre de navigation supérieure du fichier. Accédez à votre terminal à nouveau, compilez le fichier, puis exécutez-le s'il n'y a pas d'erreurs en utilisant respectivement les commandes suivantes «Nom de fichier G ++» avec votre extension de fichier «qui est«.CPP »et«./ ”Pour exécuter le nom de fichier lisible qui a le«.out ”comme extension.

Comme vous pouvez le voir dans le résultat ci-dessus, nous avons réussi à convertir la variable flottante en variable de type de données entier. La sortie montre que seul le nombre est une variable entière avant l'impression du point décimal. Nous pouvons également échanger le type de données les uns des autres, car la variable flottante à convertir en entier sera vice versa dans laquelle nous convertirons la variable entière en une variable de type de données de flottaison.

Convertir le type de données d'une variable entière en flotteur en utilisant la méthode de casting statique:

Nous allons maintenant inverser la conversion que nous avons effectuée dans l'exemple ci-dessus; Nous suivrons les étapes similaires de l'exemple précédent comme indiqué ci-dessous:

Dans le code ci-dessus, nous avons initialisé une variable entière «i» et attribué la valeur de «4». Ensuite, nous avons une autre variable «A» avec le type de données de flott. Après avoir compilé et exécuté le code ci-dessus, la sortie sera affichée comme suit:

Nous avons converti la variable entière en une variable flottante car le compilateur ne montre aucune erreur. Cependant, il y a toujours une perte de données car l'entier est un type de données d'ordre inférieur, tandis que le type de données de flotteur est un ordre plus élevé.

Utilisation du casting statique pour diviser deux entiers sans perte de données:

Dans cet exemple, nous diviserons deux entiers en les convertissant en une variable flottante pour enregistrer les données qu'un entier ne peut pas tenir. Pour ce faire, nous exécuterons le code suivant où nous initialiserons deux entiers nommés «I» et «K» avec une valeur de «41» et «2». Ensuite, nous avons une autre variable avec un type de données flottantes intitulé «A» et nous sommes convertis en une variable flottante et le divisez par l'autre variable entière. Ensuite, pour afficher la sortie à l'écran, nous avons utilisé l'instruction COUT.

Après avoir compilé le code dans l'exemple ci-dessus et l'exécuter, nous obtiendrons la sortie suivante:

La sortie ci-dessus explique que nous avons divisé la variable entière. Pourtant, avant de diviser, nous avons converti la variable entière en type de données flottantes et utilisé l'opérateur de fonte statique dans l'expression pour le diviser également. Le résultat montre un nombre avec le point décimal car il est maintenant une variable flottante, et il peut stocker des nombres après le point décimal.

Conclusion:

Dans cet article, nous avons appris le type de mécanisme de moulage dans le langage de programmation C ++. De nombreux types de moulage ont également été explorés en profondeur, en nous concentrant sur les raisons pour lesquelles nous utilisons de telles méthodes dans la programmation C ++. Nous avons également mis en œuvre le concept de coulée statique en utilisant l'opérateur de fonte statique dans une expression dans le langage de programmation C ++ dans l'Ubuntu 20.04 Environnement.