Cosa è typeid in c ++

Cosa è typeid in c ++

C++ è un potente linguaggio di programmazione che offre una vasta gamma di applicazioni ai suoi utenti. Un aspetto importante del linguaggio di programmazione C ++ è la sua capacità di supportare l'identificazione del tipo di runtime. IL typeid è tra quelle identificazioni del tipo di runtime ampiamente utilizzate nei programmi C ++.

Se non sai cosa typeid è in C ++, segui le linee guida di questo articolo.

operatore di typeid in c++

IL typeid è un operatore integrato nel linguaggio di programmazione C ++ che consente agli utenti di determinare il tipo di dati di una variabile in fase di esecuzione. Il valore restituito da typeid è di tipo “TypeInfo“, Che fornisce vari dettagli sul tipo di oggetto. È importante in quei casi in cui un programma deve eseguire più operazioni in base al tipo di dati utilizzato.

Sintassi di typeid

La sintassi di typeid L'operatore in C ++ è il seguente:

typeid (tipo)

O:

typeid (exp)

IL typeid L'operatore in C ++ accetta uno di questi due parametri.

Tipo: Quando abbiamo bisogno di conoscere il tipo di runtime di una variabile o oggetto, forniamo l'argomento del tipo all'interno del typeid operatore. In questo caso è necessario solo l'argomento del tipo e le informazioni del tipo di runtime verranno raccolte senza ulteriori valutazioni o pre-computazione.

Espressione: Quando abbiamo bisogno di dettagli sul tipo di runtime di un'espressione, il parametro di espressione viene dato all'interno del typeid operatore. Le informazioni sul tipo di runtime vengono prese dopo che l'espressione in questo parametro è stata valutata.

Se usato con a typeid, Fornisce informazioni sul tipo che corrisponde all'identificatore. Se utilizzato con un'espressione, fornisce informazioni sul tipo dinamico dell'oggetto.

Usi di Typeid Operator

IL typeid L'operatore può essere utilizzato in questi modi.

  • Quando l'operando funge da variabile dell'oggetto
  • Quando l'operando è un'espressione

1: quando l'operando agisce come variabile dell'oggetto

IL typeid L'operatore può essere utilizzato su operandi quando agiscono come variabile dell'oggetto.

#includere
#includere
Utilizzo dello spazio dei nomi std;
int main ()
int i;
Char Ch;
float fl;
doppio db;
const type_info & type_i = typeid (i);
const type_info & type_ch = typeid (ch);
const type_info & type_fl = typeid (fl);
const type_info & type_db = typeid (db);
cout<<"Type of int i is: "<cout<<"\nType of character ch is: "<cout<<"\nType of float fl is: "<cout<<"\nType of double db is: "<restituzione 0;

Nel codice sopra, stiamo dichiarando quattro diverse variabili, ciascuna del tipo di dati separato. Stiamo quindi usando il typeid Operatore su queste variabili e stampare i loro tipi di dati utilizzando le istruzioni Cout.

Produzione

2: quando l'operando è un'espressione

IL typeid L'operatore può anche essere utilizzato in cui l'operando viene trattato come un'espressione.

#includere
#includere
Utilizzo dello spazio dei nomi std;
int main ()
int i = 7;
char ch = 'a';
float fl = 42.4;
doppio db = 4.279;
const type_info & type_a = typeid (i+ch);
const type_info & type_b = typeid (i*fl);
const type_info & type_c = typeid (db*fl);
const type_info & type_d = typeid (i+db);
cout<<"expression i+ch : "<cout<<"\nexpression i*fl : "<cout<<"\nexpression db*fl : "<cout<<"\nexpression i+db : "<restituzione 0;

Nel codice sopra, inizializziamo quattro variabili di diversi tipi di dati. Quindi valutiamo alcune espressioni e calcoliamo il loro tipo usando il C++ typeid() operatore.

Produzione

Vantaggi e svantaggi di Typeid in C++

IL typeid è utile quando si scrive codice che funziona con oggetti che non sono noti fino al runtime. Ad esempio, supponiamo che una funzione prenda un puntatore vuoto come parametro. Può usare typeid per determinare se il puntatore è a un INT o un doppio, il che può influire in modo significativo su come funzionare la funzione.

Oltre al tipo di tipo, il "typeinfo"L'oggetto fornisce anche vari altri dettagli sul tipo. Questi includono:

  • Se il tipo è un tipo fondamentale, un tipo di punta o un tipo definito dall'utente.
  • Se il tipo è "const" o "volatile".
  • Se il tipo è un tipo di classe e, in tal caso, se si tratta di polimorfico.
  • Se il tipo è un tipo di array e, in tal caso, quali sono le dimensioni.
  • Se il tipo è un tipo di riferimento.

IL typeid è anche utile quando si tratta di modelli e funzioni che prendono un numero variabile di argomenti. Usando il "typeid"Operatore, è possibile intraprendere azioni specifiche del tipo in fase di esecuzione, come la scelta del modello o della funzione giusto da utilizzare.

Uno svantaggio possibile di typeid è che è in qualche modo lento. È in genere più lento di altri tipi di controllo del tipo, come i parametri dei modelli o i controlli del tipo di tempo di compilazione poiché esamina il tipo di oggetto durante il runtime.

Conclusione

IL "typeid"L'operatore in C ++ fornisce preziose informazioni sul tipo di dati di una variabile o un oggetto. Consente ai programmatori di eseguire azioni specifiche del tipo in fase di esecuzione e può essere utilizzata quando l'operando funge da variabile o quando l'operando è un'espressione.