Hvad er typeid i C++

Hvad Er Typeid I C



C++ er et kraftfuldt programmeringssprog, der tilbyder en bred vifte af applikationer til sine brugere. Et vigtigt aspekt af C++ programmeringssproget er dets evne til at understøtte runtime type identifikation. Det typeid er blandt de runtime type-identifikationer, der er meget brugt i C++-programmer.

hvis du ikke ved hvad typeid er i C++, følg denne artikels retningslinjer.







typeid Operator i C++

Det typeid er en indbygget operatør i C++ programmeringssprog, der giver brugerne mulighed for at bestemme datatypen for en variabel under kørsel. Værdien returneret af typeid er af typen 'typeinfo “, som giver forskellige detaljer om typen af ​​objektet. Det er vigtigt i de tilfælde, hvor et program skal udføre flere operationer baseret på den anvendte datatype.



Syntaks for typeid



Syntaksen af typeid operator i C++ er som følger:





typeid ( type )

Eller:



typeid ( eksp )

Det typeid operator i C++ accepterer en af ​​disse to parametre.

Type : Når vi har brug for at kende runtime-typen for en variabel eller et objekt, leverer vi type-argumentet inde i typeid operatør. Kun typeargumentet er nødvendigt i dette tilfælde, og runtime-typeoplysningerne vil blive indsamlet uden yderligere evaluering eller forudberegning.

Udtryk : Når vi har brug for detaljer om runtime-typen for et udtryk, gives udtryksparameteren i typeid operatør. Informationen om runtime-typen tages efter at udtrykket i denne parameter er blevet evalueret.

Når det bruges sammen med en typeid , giver den information om den type, der svarer til identifikatoren. Når det bruges sammen med et udtryk, giver det information om objektets dynamiske type.

Brug af typeid-operator

Det typeid operatør kan bruges på disse måder.

1: Når Operand fungerer som variabel for objektet

Det typeid operator kan bruges på operander, når de fungerer som en variabel for objektet.

#include
#inkluder
bruger navneområde std;

int main ( ) {
int i;
char ch;
flyde fl;
dobbelt db;

const type_info & type_i = typeid ( jeg ) ;
const type_info & type_ch = typeid ( ch ) ;
const type_info & type_fl = typeid ( i ) ;
const type_info & type_db = typeid ( db ) ;

cout << 'Typen af ​​int i er: ' << type_i.name ( ) ;
cout << ' \n Type karakter ch er: ' << type_ch.name ( ) ;
cout << ' \n Type float fl er: ' << type_fl.navn ( ) ;
cout << ' \n Type dobbelt db er: ' << type_db.navn ( ) << ' \n ' ;

Vend tilbage 0 ;
}

I ovenstående kode erklærer vi fire forskellige variabler, hver af separate datatyper. Vi bruger så typeid operatør på disse variable og udskriv deres datatyper ved hjælp af cout-sætninger.

Produktion

2: Når operanden er et udtryk

Det typeid operator kan også bruges, hvor operanden behandles som et udtryk.

#include
#include
bruger navneområde std;

int main ( ) {
int i = 7 ;
char ch = 'en' ;
flyde fl = 42,4 ;
dobbelt db = 4.279 ;

const type_info & type_a = typeid ( i+ch ) ;
const type_info & type_b = typeid ( jeg * i ) ;
const type_info & type_c = typeid ( db * i ) ;
const type_info & type_d = typeid ( i+db ) ;

cout << 'udtryk i+ch : ' << type_a.name ( ) ;
cout << ' \n udtryk i*fl : ' << type_b.navn ( ) ;
cout << ' \n udtryk db*fl : ' << type_c.navn ( ) ;
cout << ' \n udtryk i+db: ' << type_d.name ( ) ;
Vend tilbage 0 ;
}

I ovenstående kode initialiserer vi fire variabler af forskellige datatyper. Derefter evaluerer vi nogle udtryk og beregner deres type ved hjælp af C++ typeid () operatør.

Produktion

Fordele og ulemper ved typeid i C++

Det typeid er nyttig, når du skriver kode, der fungerer med objekter, der ikke er kendt før runtime. Antag for eksempel, at en funktion tager en void-pointer som en parameter. Det kan bruge typeid for at bestemme, om pointeren er til en int eller en double, hvilket kan have væsentlig indflydelse på, hvordan funktionen skal fungere.

Ud over typenavnet er ' typeinfo ”-objektet giver også forskellige andre detaljer om typen. Disse omfatter:

  • Om typen er en grundlæggende type, en pointertype eller en brugerdefineret type.
  • Om typen er 'konst' eller 'flygtig'.
  • Om typen er en klassetype, og i givet fald om den er polymorf.
  • Om typen er en matrixtype, og i så fald hvad dimensionerne er.
  • Om typen er en referencetype.

Det typeid er også nyttig, når du har at gøre med skabeloner og funktioner, der tager et variabelt antal argumenter. Ved at bruge ' typeid ”-operatør, kan du udføre typespecifikke handlinger under kørsel, såsom at vælge den rigtige skabelon eller funktion at bruge.

En mulig ulempe ved typeid er, at det er noget langsomt. Det er typisk langsommere end andre typer typekontrol, såsom skabelonparametre eller kompileringstidstypetjek, da det undersøger typen af ​​et objekt under kørsel.

Konklusion

Det ' typeid ” operator i C++ giver værdifuld information om datatypen for en variabel eller et objekt. Det giver programmører mulighed for at udføre typespecifikke handlinger under kørsel og kan bruges, når operanden fungerer som en variabel, eller når operanden er et udtryk.