C++ Variablentyp abrufen

Namita Chaudhary 12 Oktober 2023
  1. C++-Variablentyp abrufen
  2. Verwenden Sie den Operator typeid, um den Typ einer Variablen in C++ zu finden
  3. Verwenden Sie den Spezifizierer decltype(), um den Typ einer Variablen in C++ zu finden
  4. Fazit
C++ Variablentyp abrufen

In diesem Artikel werden die verschiedenen Methoden zum Auffinden des Datentyps einer Variablen im Standard-C++ untersucht.

C++-Variablentyp abrufen

Es gibt Szenarien, in denen wir den dynamischen Typ oder den Typ zur Laufzeit der Variablen in C++ finden müssen. Daher haben uns die C++-Bibliotheken verschiedene Methoden zur Verfügung gestellt, um den Typ einer Variablen zu finden.

Eine der Methoden ist die Verwendung des Operators typeid, der in der Bibliothek <typeinfo> von C++ vorhanden ist. Der andere wurde jedoch in C++11 eingeführt, bekannt als decltype(x), der einen Ausdruck in einen Typ des erzeugten Ergebnisses umwandelt.

In den älteren Versionen von C++ muss jeder Datentyp explizit zur Kompilierzeit deklariert werden; in den neueren Versionen gibt es jedoch eine Möglichkeit zur automatischen Ableitung der Datentypen in einem Ausdruck, der als Typinferenz bezeichnet wird. Der Operator decltype() bietet auch die Möglichkeit, die Datentypen in einem Ausdruck automatisch abzuleiten.

In diesem Artikel werden wir jedoch jede der Methoden im Detail besprechen.

Verwenden Sie den Operator typeid, um den Typ einer Variablen in C++ zu finden

Der Operator typeid ist in der Bibliothek <typeinfo> von C++ vorhanden und wird verwendet, um den zur Laufzeit bereitgestellten Variablentyp zu finden. Die vollständige Funktion zum Finden des Variablentyps ist jedoch typeid(x).name(), wobei x die Variable ist, deren Typ gefunden werden soll.

Die verwendete Elementfunktion name() gibt eine Zeichenfolge zurück, die den Typ der Variablen identifiziert.

Als Ausgabe werden jedoch die Initialen des Datentyps zurückgegeben. Beispielsweise wird für int i, für float f und für double d als Typ zurückgegeben.

Sehen wir uns den Code an, der den Operator typeid in C++ verwendet, um den Typ einer Variablen zu finden.

#include <iostream>
#include <typeinfo>
using namespace std;

int main() {
  int x = 200;
  float y = 200.790;
  cout << typeid(x).name() << endl;
  cout << typeid(y).name() << endl;
  cout << typeid(x * y).name() << endl;
  return 0;
}

Ausgabe:

i
f
f

Die obige Ausgabe zeigt, dass sich i auf den Typ integer bezieht, während sich f auf den Typ float bezieht. Darüber hinaus wird die typeid in C++ auch verwendet, um den Typ eines Ausdrucks zurückzugeben.

Im obigen Beispiel ist der im Operator typeid übergebene Ausdruck die Multiplikation der beiden unterschiedlichen Datentypen int und float; Daher wird das Ergebnis in den größeren Datentyp konvertiert.

Verwenden Sie den Spezifizierer decltype(), um den Typ einer Variablen in C++ zu finden

Der Spezifizierer decltype(x) wurde mit C++11 eingeführt. Es ist ein Operator, der verwendet wird, um den Typ des resultierenden Ausdrucks zu erhalten.

Das Schlüsselwort auto wird verwendet, um eine Variable mit einem bestimmten Typ zu deklarieren, während das decltype diesen Variablentyp extrahiert. Sowohl auto als auch decltype basieren auf der Typinferenz, die sich auf die automatische Ableitung der Datentypen bezieht.

Sehen wir uns ein Beispiel für die Verwendung des Operators decltype an, um den Variablentyp in C++ zu finden.

#include <bits/stdc++.h>

#include <cstring>
using namespace std;

float function1() { return 4.5; }
int function2() { return 34; }
int main() {
  decltype(function1()) a;
  decltype(function2()) b;

  cout << typeid(a).name() << endl;
  cout << typeid(b).name() << endl;

  return 0;
}

Ausgabe:

f
i

Die Datentypen der Variablen a und b im obigen Beispiel sind die gleichen wie die Rückgabetypen von Funktion1 und Funktion2.

Ein weiteres Beispiel für den Operator decltype ist unten, in dem er den Typ des Ausdrucks in C++ extrahiert.

#include <bits/stdc++.h>
using namespace std;

int main() {
  float ft = 4.8;
  decltype(ft) a = ft + 9.8;
  cout << typeid(a).name();
  return 0;
}

Ausgabe:

f

Der Ausgang f bezieht sich auf den Datentyp float. Daher ist nach Hinzufügen des Ausdrucks ft+9.8 der resultierende Datentyp float.

Ein wesentlicher Unterschied zwischen den Operatoren typeid und decltype besteht jedoch darin, dass die typeid die Informationen über den Typ zur Laufzeit bereitstellt, während decltype die Typinformationen zur Kompilierzeit bereitstellt.

Fazit

In diesem Artikel haben wir besprochen, wie man den Typ einer Variablen in C++ erhält. Wir haben zwei verschiedene Methoden besprochen; Eine besteht darin, die typeid(x).name() zu verwenden, die den Typ zur Laufzeit bereitstellt, während die andere die decltype(x) ist, die den Typ zur Kompilierzeit bereitstellt.

Beide Methoden sind jedoch effizient und einfach anzuwenden.

Verwandter Artikel - C++ Type