Maison> développement back-end> C++> le corps du texte

Programme C++ pour convertir un type primitif en objet

PHPz
Libérer: 2023-08-26 19:29:03
avant
1144 Les gens l'ont consulté

Programme C++ pour convertir un type primitif en objet

Les types de données primitifs en C++ sont des types de données prédéfinis par le langage lui-même ; comme int, float, double, etc. Les objets sont des instances de classes et C++ est un langage orienté objet, et une conversion entre les types de données primitifs et les objets est nécessaire. Les classes servent de plans architecturaux pour les types de données. Bien que cela ne décrive aucune donnée spécifiquement, il précise ce que signifie le nom de la classe, c'est-à-dire à quoi ressemble un objet de cette classe et quelles opérations peuvent être effectuées dessus.

Dans le compilateur du langage C++, la conversion entre les types de données primitifs en objets n'est pas clairement définie, donc pour convertir les types de données primitifs en objets, le mécanisme doit être défini par le programmeur. La manière dont un type primitif est converti en un objet spécifique est définie dans le constructeur d'une classe définie par l'utilisateur. Prenons un exemple pour mieux comprendre ce problème.

Le problème que nous résolvons est de convertir le poids en grammes en kilogrammes et en grammes. Pour ce faire, nous définissons une classe de poids définie par l'utilisateur avec deux membres entiers kg et gm. "kg" est la valeur en kilogramme du poids donné et "gm" est le poids restant inférieur à un kilogramme à convertir. L'algorithme pour résoudre ce problème est donné ci-dessous.

Grammaire

La syntaxe de conversion est la suivante -

class Myclass{ private: int classVal; public: MyClass(){ classVal = 0; } MyClass(int val) { classVal = val; } }; int main() { Myclass m; int val = ; m = val; return 0; }
Copier après la connexion

Algorithme

  • Mettez les poids d'entrée dans des variables entières.
  • Créez un objet de poids de classe.
  • Attribuer une valeur entière à l'objet de classe ;
  • Appelez la fonction show de l'objet.

Dans le constructeur de la classe définie, procédez comme suit :

  • Divisez la valeur d'entrée par 1 000 pour obtenir la valeur du kilogramme (kg) comme quotient.
  • Divisez la valeur saisie par 1000 pour obtenir le reste en grammes (gm).

Comme mentionné précédemment, tous les mécanismes de conversion doivent être définis au sein du constructeur. Le constructeur doit être paramétré et la valeur source d'origine doit être transmise au constructeur en tant que paramètre. Le code source du problème est le suivant.

Exemple

#include  using namespace std; //converts weight in grams to kgs and grams class Weight { private: int kg, gm; public: //default constructor Weight() { kg = 0; gm = 0; } //paramaeterized constructor Weight(int ip) { this->kg = ip / 1000; this->gm = ip % 1000; } //shows the output void show() { cout << "The weight is " << this->kg << " kgs and " << this->gm << " grams." << endl; } }; int main() { //weight in grams int ip = 1085; //conversion done here Weight w; w = ip; w.show(); return 0; }
Copier après la connexion

Sortie

The weight is 1 kgs and 85 grams.
Copier après la connexion

Dans l'exemple, l'entrée se trouve à l'intérieur de la fonction principale et est "ip". Il existe également un objet de poids de classe "w". Nous venons d'attribuer une valeur entière à un objet de classe et d'appeler un appel implicite au constructeur paramétré de cet objet. Les fonctions définies dans le constructeur ont été exécutées, et enfin la sortie est affichée en appelant la fonction show.

Conclusion

Dans cet exemple, la conversion d'un type primitif en un objet de classe défini par l'utilisateur se fait à l'aide d'un appel implicite au constructeur. C'est très bien jusqu'à ce que le constructeur ait besoin de plusieurs valeurs primitives pour instancier l'objet. Par conséquent, nous devons appeler explicitement le constructeur, puis transmettre la valeur d'origine en tant que paramètre au constructeur d'objet. L’inverse est vrai pour la conversion d’un objet en type primitif, qui nécessite un processus plus complexe.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!