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.
- Epäsuora muuntaminen
- 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 int
tiedot double
muuttujalle.
num_double = num_int;
Tässä kääntäjä int
muuntaa arvon automaattisesti, double
ennen 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 double
tiedot int
muuttujalle.
num_double = num_int;
Tässä kääntäjä double
muuntaa arvon automaattisesti int
ennen kuin se määritetään muuttujalle num_int. Tämä on myös esimerkki implisiittisestä tyyppimuunnoksesta.
Huomaa: Koska int
desimaaliosaa 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.

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:
- C-tyylinen valu (tunnetaan myös nimellä valettu merkintä )
- Toimintomerkintä (tunnetaan myös nimellä vanha C ++ -tyyppinen casting )
- 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