Ako najlepšie implementovať typovú konverziu v C ++?



Tento článok vás oboznámi s konverziou typov v C ++ a nadviažeme na ňu podrobnou programovou ukážkou toho istého.

Tento článok vám predstaví ešte jednu zaujímavú tému, do ktorej je Type Conversion In C ++ a postupujte podľa neho s podrobnou praktickou ukážkou. V tomto článku sa budeme zaoberať nasledujúcimi ukazovateľmi,

Poďme teda do toho,





Konverzia typu v C ++

Konverzia typu označuje konverziu z jedného typu na druhý. Hlavnou myšlienkou prepočtu typu je vytvoriť premennú jedného typu kompatibilnú s premennou iného typu na vykonanie operácie. Napríklad na nájdenie súčtu dvoch premenných, jednej typu int a druhej typu float. Musíte teda napísať premennú cast int na float, aby boli obidva typy float na vyhľadanie súčtu. V tomto blogu sa naučíme, ako vykonať prevod typov v C ++.

V C ++ existujú dva typy konverzie typov, t. J. Implicitná konverzia typu a explicitná konverzia typu.



Implicitná konverzia typu

Implicitný prevod typu alebo automatický prevod typu vykonáva kompilátor sám. Užívateľ nevyžaduje žiadny externý spúšťač na obsadenie premennej z jedného typu do druhého.

K tomu dôjde, keď výraz obsahuje premenné viac ako jedného typu. V týchto scenároch teda prebieha automatická konverzia typu, aby sa zabránilo strate údajov.Pri automatickej konverzii typu sa všetky dátové typy prítomné vo výraze prevedú na dátový typ premennej s najväčším dátovým typom.

Nižšie je uvedené poradie automatickej konverzie typu. Môžete tiež povedať, že najmenší až najväčší dátový typ pre prevod typu.



bool -> char -> short int -> int -> unsigned int -> long -> unsigned -> long long -> float -> double -> long double

Implicitné konverzie môžu stratiť informácie, napríklad znaky sa môžu stratiť, keď sa podpísaný typ implicitne prevedie na nepodpísaný typ, a môže dôjsť k pretečeniu, keď sa implicitne prevedie long na float.

ako používať energiu v

Teraz sa pozrime na príklad, aby sme pochopili, ako funguje implicitná konverzia typu v C ++.

Príklad

#include using namespace std int main () 12w {int int1 = 100 // integer int1 char char1 = 'c' // znak char1 // char1 implicitne prevedený na int pomocou ASCII hodnoty 'c' tj. 99 int1 = int1 + char1 // int1 sa implicitne prevedie na float float flt1 = int1 + 2,7 cout<< 'int1 = ' << int1 << endl << 'char1 = ' << char1 << endl << 'flt1 = ' << flt1 << endl return 0 }

Výkon

int1 = 199

char1 = c

flt1 = 201,7

Ďalej v tomto prevode typov v článku C ++

počkajte a upozornite v Jave

Explicitná konverzia typu

Explicitná konverzia typu alebo odovzdanie typu je používateľom definovaná konverzia typu. Pri explicitnej konverzii typu používateľ prevádza jeden typ premennej na iný typ. Explicitnú konverziu typu je možné v jazyku C ++ vykonať dvoma spôsobmi:

  • Konverzia podľa zadania
  • Konverzia pomocou operátora Cast

Teraz sa pozrime na všetky spôsoby, ako explicitný typ prenášať jeden typ na druhý.

Konverzia podľa zadania

V tejto konverzii typu je požadovaný typ výslovne definovaný pred výrazom v zátvorke. K strate údajov dochádza pri explicitnom prenášaní typu. Považuje sa to za razantné odlievanie. Pozrime sa na príklad.

Príklad

#include using namespace std int main () {double dbl1 = 8.9 // Explicitná konverzia z double na int int res = (int) dbl1 + 1 cout<< 'Result = ' << res return 0 }

Výkon

Výsledok = 9

Ďalej v tomto prevode typov v článku C ++

Konverzia pomocou Cast Operator

Operátor Cast je unárny operátor, ktorý vynúti prevod jedného typu údajov na iný typ údajov. V C ++ existujú štyri typy castingu, to znamená Static Cast, Dynamic Cast, Const Cast a Reinterpret Cast.

  • Statické obsadenie - Toto je najjednoduchší typ odliatkov, ktorý je možné použiť. Nevykonáva iba vykašliavanie, ale aj vykašliavanie. Je to kompilácia času. Počas behu modulu sa kontroly nevykonávajú, aby sa zaručilo, že prevádzaný objekt je úplným objektom cieľového typu.
  • Dynamické obsadenie - Zaisťuje, že výsledok prevodu typu ukazuje na platný a úplný objekt typu cieľového ukazovateľa.
  • Const Cast - manipuluje s tým, či objekt musí byť konštantný alebo nekonštantný. Zaisťuje, že je potrebné konštantu nastaviť alebo odstrániť.
  • Reinterpretovať obsadenie - prevádza akýkoľvek typ ukazovateľa na akýkoľvek iný typ ukazovateľa, dokonca aj nesúvisiacich tried. Nekontroluje, či je typ ukazovateľa a údaje, na ktoré ukazovateľ smeruje, rovnaké alebo nie.

Pozrime sa na príklad statického obsadenia,

Príklad

#include using namespace std int main () {float flt = 30.11 // using cast operator int int1 = static_cast (flt) cout< 

Výkon

30

Týmto sa dostávame na koniec tohto článku o prevode typov v C ++.Dúfam, že vás tento informačný a užitočný považoval za užitočný. Sledujte ďalšie výukové programy s podobnými témami. Môžete si tiež pozrieť náš vzdelávací program.o získať podrobné znalosti o jQuery spolu s jeho rôznymi aplikáciami, môžete pre živé online školenie s nepretržitou podporou a doživotným prístupom.

Máte na nás otázku? Uveďte ich v sekcii komentárov tohto článku a my sa vám ozveme.