logo

Skriv Konvertering i C++

En type cast er dybest set en konvertering fra en type til en anden. Der er to typer typekonvertering:

    Implicit typekonvertering Også kendt som 'automatisk typekonvertering'.
    • Udført af compileren alene uden nogen ekstern trigger fra brugeren.
    • Finder normalt sted, når der i et udtryk er mere end én datatype til stede. I en sådan tilstand finder typekonvertering (typepromovering) sted for at undgå tab af data.
    • Alle variablernes datatyper opgraderes til datatypen for variablen med den største datatype.
       bool ->char -> short int -> int -> unsigned int -> long -> unsigned -> long long -> float -> double -> long double>
    • Det er muligt for implicitte konverteringer at miste information, tegn kan gå tabt (når fortegn konverteres implicit til usigneret), og overløb kan forekomme (når long long implicit konverteres til float).

    Eksempel på type implicit konvertering:




    java og swing





    // An example of implicit conversion> > #include> using> namespace> std;> > int> main()> {> >int> x = 10;>// integer x> >char> y =>'a'>;>// character c> > >// y implicitly converted to int. ASCII> >// value of 'a' is 97> >x = x + y;> > >// x is implicitly converted to float> >float> z = x + 1.0;> > >cout <<>'x = '> << x << endl> ><<>'y = '> << y << endl> ><<>'z = '> << z << endl;> > >return> 0;> }>



    >

    >

    Produktion:

     x = 107 y = a z = 108>
    Eksplicit typekonvertering: Denne proces kaldes også typestøbning, og den er brugerdefineret. Her kan brugeren typecaste resultatet for at gøre det til en bestemt datatype.

    I C++ kan det gøres på to måder:

    • Konvertering efter opgave: Dette gøres ved eksplicit at definere den påkrævede type foran udtrykket i parentes. Dette kan også betragtes som en kraftfuld casting.

      Syntaks:

      (type) expression>

      hvor type angiver den datatype, som det endelige resultat konverteres til.

      Eksempel:




      // C++ program to demonstrate> // explicit type casting> > #include> using> namespace> std;> > int> main()> {> >double> x = 1.2;> > >// Explicit conversion from double to int> >int> sum = (>int>)x + 1;> > >cout <<>'Sum = '> << sum;> > >return> 0;> }>

      hvordan man ændrer streng til int

      >

      >

      Produktion:

       Sum = 2>
    • Konvertering ved hjælp af Cast-operator: En Cast-operatør er en unær operatør hvilket tvinger én datatype til at blive konverteret til en anden datatype.
      C++ understøtter fire typer støbning:

      1. Statisk cast
      2. Dynamisk cast
      3. Const Cast
      4. Genfortolke Cast
        1. Eksempel:




          #include> using> namespace> std;> int> main()> {> >float> f = 3.5;> > >// using cast operator> >int> b =>static_cast><>int>>(f);> > >cout << b;> }>

          >

          javac genkendes ikke

          >

          Produktion:

           3>

Fordele ved typekonvertering:

  • Dette gøres for at drage fordel af visse funktioner i typehierarkier eller typerepræsentationer.
  • Det hjælper med at beregne udtryk, der indeholder variabler af forskellige datatyper.