C ++ Stdforward

C ++ Stdforward
Eine der wesentlichen C ++ - Funktionen, die Vorwärts () -Funktion, wird in der heutigen Lektion behandelt. Um sicherzustellen, dass jeder Aspekt der Funktion klar verstanden wird, werden wir auch einige Beispiele verwenden. Lassen Sie uns zunächst die C ++ - Programmiersprache, die Grundlagen der Funktionen und die Logik hinter der Implementierung der Stürmer () -Funktion schnell überprüfen.

Die Grundlage der C ++-Programmiersprache basiert auf den Konzepten der objektorientierten Programmierung (OOP). Der Benutzer kann die Prinzipien des Programms problemlos erstellen und verstehen, da C ++ über einen richtigen Framework verfügt. Darüber hinaus wurde das Prinzip in C ++ deutlich, da Funktionen präzise Code -Teile sind, so dass es überall innerhalb eines laufenden Programms verwendet werden kann.

Einführung

In der C ++ - Sprache funktioniert die Funktion vorwärts () ähnlich wie bei der Move () -Funktion, da beide zur Implementierung der Bewegungssemantik verwendet werden. In der Funktion vorwärts () akzeptiert es einen Weiterleitungswert als Eingangswert und dann bestimmt, ob ein LVALUE oder ein referenzierter RValue an den Eingangswert geliefert wurde. Und im Gegenzug, ob es die richtige Art von Referenzen mit dem Argument T -Vorlagen angibt oder nicht. Die Vorwärts () -Funktion wird verwendet, um eine perfekte Weiterleitung durchzuführen. Wenn einer REF -Variablen eine RValue -Referenz zugeordnet wird, wird REF eine benannte Entität. Obwohl REF eine RValue -Referenz ist, fällt sie in die Kategorie LVALUE. Infolgedessen wird das Kopieren von Semantik anstelle von Verschmelzungssemantik für Referenzen verwendet.

Syntax

Die Funktion lvalue () ist eine linke Wertvorlage in der Funktion vorwärts () und das vordefinierte Schlüsselwort in C ++ - Sprache, mit dem eine Klassenvorlage begonnen wird. Anschließend folgen alle Vorlagenparameter, die in A und der Klassenerklärung enthalten sind. Der Vorlageparameter „T“ und das Schlüsselwort „Klasse“ sind Platzhalter für die in der Deklaration verwendeten Datentypen. Wir werden diesen „T“ -Parameter übergeben und die Funktion vorwärts () aufrufen und den Typ und den Argument darin übergeben. Die Vorlagenfunktion remove_reference () ist ein Teil der C ++ - Standardbibliothek. Die Funktion rvalue () ist die richtige Wertvorlage in der Funktion vorwärts (). Eine REF -Variable verwandelt sich in ein benanntes Objekt, wenn eine RValue -Referenz darauf angewendet wird. Auch wenn der Schiedsrichter ein Verweis auf ein Rvalue ist, gehört er in die Lvalue -Klasse.

Parameter:

arg: ist ein Eingabargument und wird verwendet, um in der Vorwärts () -Funktion zu bestehen.

Rückgabewert:

Im Gegenzug erhalten wir die Referenz für RValue (rechter Wert), wenn wir die Referenz für LVALUE (linker Wert) nicht erhalten haben.

Beispiel 01:

Lassen Sie uns nun mit der Implementierung unseres ersten Beispiels für eine der Funktionen, nämlich die Weiterleitung () -Funktion in C ++ - implementieren. Um den Code zu schreiben, den wir in C ++ - Programmiersprache implementieren möchten, benötigen wir immer einen Compiler, in dem wir den Code schreiben und den Code ausführen. Dafür können Sie einen beliebigen Compiler der C ++ - Sprache installieren, oder Sie können den Online -Compiler auch verwenden, um den Code zu schreiben und auszuführen, wenn er mit den Bibliotheken kompatibel ist, die Sie im Programm verwenden werden.

#enthalten
#enthalten
Verwenden von Namespace STD;

Nach dem Öffnen des C ++ - Compilers können Sie jetzt mit dem Schreiben des Codes beginnen. In C ++ - Programmen müssen wir immer Header -Dateien in das Programm aufnehmen, damit wir die Funktion, die wir im Programm überall verwenden werden, einfach aufrufen können. Diese Bibliotheken sind die integrierten Bibliotheken der C ++-Programmiersprache. Wir müssen einfach nur eine Codezeile schreiben, um diese Bibliotheken einzuschließen. Die erste Bibliothek, die wir immer in das C ++ - Programm aufnehmen werden. Um die Bibliothek anzurufen, schreiben wir zunächst das Symbol "#", das dem Compiler mitteilt, dass wir auf die Bibliothek zugreifen werden. Dann schreiben wir das Schlüsselwort „Include“, das das vordefinierte Schlüsselwort ist, das den Compiler anweist, den wir in der Bibliothek enthalten. Und im Symbol werden wir den Namen der Bibliothek schreiben, die wir im Programm importieren, das iSstream ist. “.

Wir werden die zweite eingebaute Bibliothek des Programms einbeziehen, die wir verwenden, die "Dienstprogramm" ist. Die "Dienstprogramm" -Bibliothek wird verwendet, um einige Vorlagen zu definieren, die häufig in der Standard -Vorlagenbibliothek (STL) im gesamten vorhandenen Programm verwendet werden. Darüber hinaus verwendeten wir die Regel „Verwenden von Namespace STD“, um zu verhindern.

void überladen (int const & a)

Cout<< "[lvalue]";

void überladen (int && a)

Cout<< "[rvalue]";

Vorlage
T vorwärts (t && a)

überladen (a);
überladen (vorwärts (a));

Wir haben die globale Funktion implementiert, die eine der objektorientierten Einzelmethoden ist, bei denen wir die Funktion außerhalb der Funktion main () deklariert haben, und dann die Funktion einfach in der Funktion main () aufrufen und die deklarierten Variablen darin übergeben, damit wir uns Holen Sie sich die gewünschte Ausgabe. Zunächst schreiben wir den Datentyp der Funktion, den wir implementieren, der „void“ ist, was bedeutet, dass die Funktion keinen Wert zurückgibt.

Als nächst. In der Funktion Overload () haben wir die Nachricht B mit der Cout () -Methode gedruckt. Die überladene Funktion überlastet () bedeutet, dass Sie im selben Namespace mehrere Funktionen mit demselben Namen bereitstellen können. Mit überladenen Funktionen können Sie einer Methode mehrere Semantik basierend auf den Typen und Mengen ihrer Parameter angeben. Wie Sie sehen, haben wir eine weitere Funktion mit demselben Namen im selben Programm implementiert und haben den Parameter darin übergeben.

Als nächstes haben wir die vordefinierte Template () -Funktion im Programm implementiert, damit wir das Ergebnis eines beliebigen Datentyps zurückgeben können. Und wir haben die überlastete () -Funktion darin genannt. Wie Sie gesehen haben, ist die überlastete () -Funktion "int" -Typ "Int". Aus diesem Grund haben wir die Funktion template () implementiert, wenn wir den Wert eines beliebigen Typs eingeben, damit der Compiler keinen Fehler im Programm generiert.

Dann starten wir die main () -Funktion, in der wir die Variable deklarieren, und wir werden hier auf die oben genannten globalen Funktionen zugreifen. Zunächst haben wir die beiden Variablen des Int -Typs deklariert und ihnen den Wert zugewiesen. Wir haben eine weitere Variable vom Typ "int" benannt und haben den Hinzufügenexpression in "res" gespeichert. Anschließend haben wir die Variable „Res“ gedruckt und auch die Variable „Res“ in der Funktion vorwärts () übergeben, damit wir den LVALUE erhalten, und im nächsten Stürmer () -Funktionsaufruf erhalten wir sowohl die LVALUE- als auch die RValue -Referenz.

int main ()
int a = 30, b = 23;
int res = a+b;
Cout<< res << " is a: ";
vorwärts (res);
Cout<Cout<vorwärts (a+b);
Cout<Rückkehr 0;

Und am Ende der Funktion main () werden wir 0 zur main () -Funktion zurückkehren, damit der Compiler die Ausführung des Programms stoppen und die Ausgabe des Programms zeigen möchten.

Abschluss

In diesem Artikel haben wir die Vorwärts () -Funktion kennengelernt, die die integrierte Funktion der C ++-Programmiersprache ist. Wir haben auch erfahren, was Überladung ist und auch über die Funktion template () der C ++ - Sprache. Wir haben ein Beispiel für die Funktion vorwärts () implementiert und haben die Funktion template () darin verwendet.