C ++ DeclType

C ++ DeclType
„Typinferenz ist die automatische Bestimmung des Datentyps einer Anweisung in einer Computersprache. Die möglichen Werte eines Ausdrucks zur Laufzeit wurden durch die manuelle Deklaration jedes Datentyps vor C ++ 11 eingeschränkt. Wenn wir den Typ -Inferenz verwenden können, können wir weniger Code schreiben, um etwas auszudrücken, den der Compiler bereits versteht. Obwohl die Kompilierungszeit erheblich zunimmt, da alle Typen nur während der Compiler -Phase bestimmt werden, ist die Ausführungszeit des Programms nicht betroffen. Hier werden wir den Keyword DeclType C ++ und seine Funktionalität diskutieren.”

Was ist DeclType in C++

Es befasst sich mit dem angegebenen Typ eines Unternehmens oder eines Ausdrucks eines Ausdrucks. DeclType ist eine Art von Operator, der die Art des gegebenen Ausdrucks im Gegensatz zu „Auto“ untersucht, mit dem Sie eine Variable mit einem bestimmten Typ definieren können, aber Sie können den Typ aus der Variablen abrufen. Typinformationen werden von DecklyPE während der Zusammenstellung und durch Typid während der Ausführung bereitgestellt. Wenn ein Objekt einer abgeleiteten Klasse eine Basisklassenreferenz oder einen Zeiger hat, der darauf hinweist.

Wenn es notwendig ist, den dynamischen Typ eines Objekts zu kennen, wird das Operator Typid verwendet. Der tatsächliche Name, der zurückgegeben wird, ist jedoch etwas Compiler-abhängig.

Die allgemeine Syntax C ++ sieht DeclType vor: folgt:

Syntax:

DeclType (Ausdruck)

Der DeclType nimmt nur einen Parameter, was ein Ausdruck ist. Der DeclType gibt den Typ des Expressionsparameters zurück. Unter Verwendung der folgenden Richtlinien hängt der Compiler vom Typ des Expressionsparameters ab.

  • Wenn der Expressionsparameter ein Zugriff auf ein Klassenmitglied oder eine Bezeichnung ist, ist der vom Ausdruck identifizierte Typ des Objekts DeclType (Ausdruck). Wenn ein solches Objekt nicht vorhanden ist oder wenn das Ausdrucksargument eine Gruppe überlasteter Funktionen angibt, gibt der Compiler eine Fehlermeldung aus.
  • Wenn der Eingabeausdruck eine Methode oder eine Operatorfunktion mit vielen Überladungen aufruft, ist der Rückgabetyp einer bestimmten Funktion decklype (Ausdruck).

Beispiel 1

Die Implementierung der obigen Diskussion erfolgt durch den Decltype -Code. Da mehr als eine Variable, Funktion, Klasse usw., Kann im identischen Bereich nicht den gleichen Namen haben. Der Namespace wird daher eingeführt, um dieses Problem zu lösen. Danach haben wir die Funktion "my_func1" erstellt, die den Ganzzahlwert "5" zurückgibt, da wir den Int -Datentyp anfänglich an die Funktion "my_func1" angegeben haben.

Auch hier haben wir eine Funktion als „my_func2“ festgelegt und ihnen einen Zeichendatentyp zugewiesen. Diese Funktion gibt den Zeichenwert "I" zurück. Als nächst. Der DeclType -Modifikator nimmt die "my_func1" und "my_func2" als Argument. Für den DeclType haben wir auch die beiden Variablen als „A“ und „B“ definiert.

Die Variablen "A" und "B" haben die gleichen Datentypen wie der Rückgabetyp "my_func1" und "my_func2". Anschließend haben wir eine Cout -Anweisung, bei der die Typid die Variablen „A“ und „B“ als Eingabe nimmt und den Typ dieser Variablen zurückgibt.

#enthalten
Verwenden von Namespace STD;
int my_func1 () return 5;
char my_func2 () return 'l';
int main ()

DeclType (my_func1 ()) a;
decapType (my_func2 ()) b;
Cout<Cout<Rückkehr 0;

Da ist die Art von "my_func1" int und "my_func2" ist char. In der Ausgabe wird also der Typ "I" und "C" zurückgegeben, der den Int- und Zeichentyp anzeigt.

Beispiel 2

Eine zusätzliche Darstellung der Verwendung von DECTTYPE ist unten angegeben, die sich geringfügig vom vorherigen unterscheidet. Wir haben das Haupt () dieses speziellen Programms nach dem Header -Abschnitt direkt konstruiert. In der INT main () des Programms haben wir die Variable „Num“ deklariert und ihnen eine Nummer „10“ zugewiesen. Dann haben wir den DeclType -Modifikator bezeichnet, der die Variable „Num“ als Parameter nimmt. Mit dem DeclType -Modifikator haben wir auch die Variable "i" festgelegt, die den Typ int hat wie der Typ der Variablen "Num".

Dann haben wir die Num und die Zahl "10" hinzugefügt, indem wir den Plus -Operator innerhalb der Variablen "I" verwendet haben. Danach haben wir einen Cout -Befehl, bei dem das TypeID aufgerufen wird, der die Variable "I" als Eingabe nimmt und ihren Typ liefert.

#enthalten
Verwenden von Namespace STD;
int main ()

int num = 10;
deklarttype (num) i = num + 10;
Cout<< "decltype : " <Rückkehr 0;

Wie wir den Int -Typ für die Variable „Num“ im obigen Code -Snippet zur Verfügung stellen. Die Ausgabe zeigt das Wort „I“ an, das der int -Typ -Wert der Variablen "Num" ist.

Beispiel 3

Die Mindestzahlenzahlen werden von der C ++ - Template -Methode min type () zurückgegeben, die unten angezeigt wird. Für die beiden Zahlen kann jeder integrale Typ verwendet werden. Der minimale Typ von zwei wird verwendet, um den Rückgabetyp zu bestimmen.

Mit dem Auto -Modifikator haben wir die Funktionssuche erstellt und die Variablen x und y als Parameter darin übergeben. Anschließend haben wir die Variablennamen dem DeclType -Schlüsselwort zugewiesen. Der DeclType nimmt die Variable mit dem bedingten Ausdruck ein. Die Funktion sucht nach dem Mindestwert und gibt den Typ der Variablen zurück, der den Mindestwert aufweist. Als nächstes haben wir innerhalb der INT main () den Wert über den COUT -Befehl an die Seatchmin -Funktion übergeben.

#enthalten
Verwenden von Namespace STD;
Vorlage
Auto Searchmin (T1 X, T2 y) -> DeclType (x < y ? x : y)

Rückkehr (x < y) ? x: y;

int main ()

Cout<Cout<Rückkehr 0;

Die Ausgabe zeigte die folgenden Mindestwerte an. Wie aus der ersten Suche nach Anweisung, 4.55 wird vom Doppelart zurückgegeben. Dann wird die zweite Anweisung 2 aus dem Int -Datentyp erhalten.

Abschluss

Hier geht es um den C ++ - DeclType. Wir haben es kurz mit der Definition, ihrer Syntax und ihrer Funktionalität in diesem speziellen Artikel besprochen. Hier haben wir gezeigt, dass der Decltype mit dem laufenden Beispielcode in C arbeitet++. Alle Fälle unterscheiden sich voneinander. Die Instanzen unterscheiden sich alle voneinander. Das DeclType -Skript mit dem automatischen Präfix wird im letzten Beispiel demonstriert. Das Keyword für automatische Typableitung, Auto, wird in C ++ 11 und darüber hinaus verwendet.