C ++ -tyyppimuunnos

Tässä opetusohjelmassa opitaan C ++ -tyypin muuntamisen perusteista esimerkkien avulla.

C ++ antaa meille mahdollisuuden muuntaa tietyntyyppiset tiedot toisiksi. Tätä kutsutaan tyyppimuunnokseksi.

C ++: ssa on kahden tyyppisiä muunnoksia.

  1. Epäsuora muuntaminen
  2. Täsmällinen muunnos (tunnetaan myös nimellä Type Casting)

Epäsuora tyypin muunnos

Kääntäjän automaattisesti tekemä tyyppimuunnos kutsutaan implisiittiseksi tyyppimuunnokseksi. Tämäntyyppinen muunnos tunnetaan myös nimellä automaattinen muunnos.

Tarkastellaan kahta esimerkkiä implisiittisen tyyppimuunnoksesta.

Esimerkki 1: Muunnos int-arvosta kaksinkertaiseksi

 // Working of implicit type-conversion #include using namespace std; int main() ( // assigning an int value to num_int int num_int = 9; // declaring a double type variable double num_double; // implicit conversion // assigning int value to a double variable num_double = num_int; cout << "num_int = " << num_int << endl; cout << "num_double = " << num_double << endl; return 0; )

Tuotos

 num_int = 9 num_double = 9

Ohjelmassa olemme määrittäneet inttiedot doublemuuttujalle.

 num_double = num_int;

Tässä kääntäjä intmuuntaa arvon automaattisesti, doubleennen kuin se määritetään muuttujalle num_double. Tämä on esimerkki implisiittisestä tyyppimuunnoksesta.

Esimerkki 2: Automaattinen muunnos kaksinkertaisesta int

 //Working of Implicit type-conversion #include using namespace std; int main() ( int num_int; double num_double = 9.99; // implicit conversion // assigning a double value to an int variable num_int = num_double; cout << "num_int = " << num_int << endl; cout << "num_double = " << num_double << endl; return 0; )

Tuotos

 num_int = 9 num_double = 9,99

Ohjelmassa olemme määrittäneet doubletiedot intmuuttujalle.

 num_double = num_int;

Tässä kääntäjä doublemuuntaa arvon automaattisesti intennen kuin se määritetään muuttujalle num_int. Tämä on myös esimerkki implisiittisestä tyyppimuunnoksesta.

Huomaa: Koska intdesimaaliosaa ei voi olla, desimaalipisteen jälkeiset numerot katkaistaan ​​yllä olevassa esimerkissä.

Tiedon menetys muunnoksen aikana (tuloksen kaventaminen)

Kuten olemme nähneet edellisestä esimerkistä, muuntaminen tietotyypistä toiseen on altis tietojen menetykselle. Näin tapahtuu, kun suurempaa tyyppiä olevat tiedot muunnetaan pienempiin tietoihin.

Mahdollinen tietojen menetys tyypin muuntamisen aikana

C ++ -muunnos

Kun käyttäjä muuttaa tietoja manuaalisesti tyypistä toiseen, tätä kutsutaan nimenomaiseksi muunnokseksi . Tämän tyyppinen muunnos tunnetaan myös tyyppivaluna .

On olemassa kolme päätapaa, joilla voimme käyttää nimenomaista muunnosta C ++: ssa. He ovat:

  1. C-tyylinen valu (tunnetaan myös nimellä valettu merkintä )
  2. Toimintomerkintä (tunnetaan myös nimellä vanha C ++ -tyyppinen casting )
  3. Tyyppimuunnosoperaattorit

C-tyylinen tyypin valu

Kuten nimestä voi päätellä, C-ohjelmointikieli suosii tämäntyyppistä valua . Se tunnetaan myös nimellä valettu merkintä .

Tämän tyylin syntaksi on:

 (data_type)expression;

Esimerkiksi,

 // initializing int variable int num_int = 26; // declaring double variable double num_double; // converting from int to double num_double = (double)num_int;

Toimintatyyli Casting

Voimme myös käyttää funktiota, kuten merkintää, tietojen lähettämiseen yhdestä tyypistä toiseen.

Tämän tyylin syntaksi on:

 data_type(expression);

Esimerkiksi,

 // initializing int variable int num_int = 26; // declaring double variable double num_double; // converting from int to double num_double = double(num_int);

Esimerkki 3: Tyyppi Casting

 #include using namespace std; int main() ( // initializing a double variable double num_double = 3.56; cout << "num_double = " << num_double << endl; // C-style conversion from double to int int num_int1 = (int)num_double; cout << "num_int1 = " << num_int1 << endl; // function-style conversion from double to int int num_int2 = int(num_double); cout << "num_int2 = " << num_int2 << endl; return 0; )

Tuotos

 num_double = 3.56 num_int1 = 3 num_int2 = 3

Tyyppimuunnoksessa käytimme sekä C-tyylityypin muunnosta että funktiotyylivalua ja näytimme tulokset. Koska he suorittavat saman tehtävän, molemmat antavat meille saman tuloksen.

Kirjoita muunnosoperaattorit

Näiden kahden tyyppivalun lisäksi C ++: lla on myös neljä operaattoria tyyppimuunnosta varten. Ne tunnetaan tyyppimuunnosoperaattoreina . He ovat:

  • static_cast
  • dynamic_cast
  • const_cast
  • reinterpret_cast

Opimme näistä näyttelijöistä myöhemmissä opetusohjelmissa.

Suositellut oppaat:

  • C ++ merkkijono int ja päinvastoin
  • C ++ merkkijono kellumaan, kaksinkertainen ja päinvastoin

Mielenkiintoisia artikkeleita...