C++ yra galinga programavimo kalba, kuri savo vartotojams siūlo platų programų spektrą. Svarbus C++ programavimo kalbos aspektas yra jos gebėjimas palaikyti vykdymo laiko tipo identifikavimą. The tipo yra vienas iš tų vykdymo laiko tipo identifikacijų, plačiai naudojamų C++ programose.
Jei nežinai ką tipo yra C++, vadovaukitės šio straipsnio gairėmis.
typeid operatorius C++
The tipo yra C++ programavimo kalbos įtaisytas operatorius, leidžiantis vartotojams nustatyti kintamojo duomenų tipą vykdymo metu. Vertė, kurią grąžino tipo yra tipo 'tipo informacija “, kuriame pateikiama įvairi informacija apie objekto tipą. Tai svarbu tais atvejais, kai programai reikia atlikti kelias operacijas pagal naudojamą duomenų tipą.
Tipo sintaksė
Sintaksė tipo operatorius C++ yra toks:
tipo ( tipo )
Arba:
tipo ( exp )
The tipo C++ operatorius priima bet kurį iš šių dviejų parametrų.
Tipas : Kai mums reikia žinoti kintamojo ar objekto vykdymo laiką, tipo argumentą pateikiame viduje tipo operatorius. Šiuo atveju reikalingas tik tipo argumentas, o vykdymo laiko tipo informacija bus renkama be jokio papildomo vertinimo ar išankstinio skaičiavimo.
Išraiška : Kai mums reikia išsamios informacijos apie išraiškos vykdymo laiką, išraiškos parametras pateikiamas tipo operatorius. Informacija apie vykdymo tipą paimama įvertinus šio parametro išraišką.
Kai naudojamas su a tipo , jame pateikiama informacija apie tipą, atitinkantį identifikatorių. Kai naudojamas su išraiška, jis pateikia informaciją apie dinaminį objekto tipą.
Tipo operatoriaus naudojimas
The tipo operatorius gali būti naudojamas šiais būdais.
1: kai operandas veikia kaip objekto kintamasis
The tipo operatorius gali būti naudojamas operandams, kai jie veikia kaip objekto kintamasis.
#include#include
naudojant vardų erdvę std;
tarp pagrindinis ( ) {
int i;
char ch;
plūdė fl;
dvigubas db;
const tipo_informacija & type_i = tipas ( i ) ;
const tipo_informacija & type_ch = typeid ( sk ) ;
const tipo_informacija & type_fl = typeid ( in ) ;
const tipo_informacija & type_db = tipo identifikatorius ( db ) ;
cout << 'Int i tipas yra: << type_i.name ( ) ;
cout << “ \n Simbolio ch tipas yra: ' << type_ch.name ( ) ;
cout << “ \n Plūdės tipas yra: ' << type_fl.name ( ) ;
cout << “ \n Dvigubo db tipas yra: ' << type_db.name ( ) << “ \n “ ;
grąžinti 0 ;
}
Aukščiau pateiktame kode deklaruojame keturis skirtingus kintamuosius, kurių kiekvienas turi atskirą duomenų tipą. Tada mes naudojame tipo šių kintamųjų operatorių ir atspausdinkite jų duomenų tipus naudodami cout sakinius.
Išvestis
2: kai operandas yra išraiška
The tipo operatorius taip pat gali būti naudojamas, kai operandas traktuojamas kaip išraiška.
#include#include
naudojant vardų erdvę std;
tarp pagrindinis ( ) {
int i = 7 ;
char ch = 'a' ;
plūdė fl = 42.4 ;
dvigubas db = 4 279 ;
const tipo_informacija & type_a = tipas ( i+ch ) ;
const tipo_informacija & tipas_b = tipas ( i * in ) ;
const tipo_informacija & type_c = tipas ( db * in ) ;
const tipo_informacija & type_d = tipas ( i+db ) ;
cout << 'išraiška i+ch :' << type_a.name ( ) ;
cout << “ \n išraiška i*fl : ' << tipo_b.vardas ( ) ;
cout << “ \n išraiška db*fl : ' << type_c.name ( ) ;
cout << “ \n išraiška i+db : ' << type_d.name ( ) ;
grąžinti 0 ;
}
Aukščiau pateiktame kode inicijuojame keturis skirtingų duomenų tipų kintamuosius. Tada įvertiname kai kurias išraiškas ir apskaičiuojame jų tipą naudodami C++ tipo () operatorius.
Išvestis
Typeid privalumai ir trūkumai C++
The tipo yra naudinga rašant kodą, kuris veikia su objektais, kurie nežinomi iki vykdymo laiko. Pavyzdžiui, tarkime, kad funkcija kaip parametrą paima tuščią rodyklę. Jis gali naudoti tipo nustatyti, ar žymeklis nukreiptas į int, ar į dublį, o tai gali labai paveikti, kaip funkcija turėtų veikti.
Be tipo pavadinimo, „ tipo informacija “ objektas taip pat pateikia įvairių kitų detalių apie tipą. Jie apima:
- Nesvarbu, ar tipas yra pagrindinis tipas, rodyklės tipas, ar vartotojo nustatytas tipas.
- Nesvarbu, ar tipas yra „const“, ar „volatile“.
- Ar tipas yra klasės tipas, ir jei taip, ar jis yra polimorfinis.
- Ar tipas yra masyvo tipas, ir jei taip, kokie yra matmenys.
- Ar tipas yra nuorodos tipas.
The tipo taip pat naudinga dirbant su šablonais ir funkcijomis, kurios turi skirtingą argumentų skaičių. Naudodami ' tipo “ operatorių, vykdymo metu galite atlikti konkretaus tipo veiksmus, pvz., pasirinkti tinkamą šabloną ar funkciją.
Vienas galimas trūkumas tipo yra tai, kad jis yra šiek tiek lėtas. Paprastai jis yra lėtesnis nei kitų tipų tipo tikrinimas, pvz., šablono parametrų arba kompiliavimo laiko tipo tikrinimas, nes tikrina objekto tipą vykdymo metu.
Išvada
„ tipo ” operatorius C++ suteikia vertingos informacijos apie kintamojo arba objekto duomenų tipą. Tai leidžia programuotojams vykdyti tipui būdingus veiksmus ir gali būti naudojamas, kai operandas veikia kaip kintamasis arba kai operandas yra išraiška.