Ich lerne C ++ jetzt, weil ich einige Low-Level-Programme schreiben muss.
Als ich vom Schlüsselwort "auto" erfuhr, erinnert es mich an das Stichwort "var" aus C #.
Also, was sind die Unterschiede zwischen C # "var" und C ++ "auto"? Es sieht genauso aus wie ihre Funktion ...
* nicht ganz, aber ich habe verstanden! Danke für die kommentierten, beantwortet alle!
* Ich habe meinen Kommentar aus der Antwort gelöscht, weil ich die Nachricht "vermeide Nachricht, Danke! '" gesehen habe.
* Ich habe viele Informationen ... vielen Dank!
In C # arbeitet das Schlüsselwort var nur lokal innerhalb der Funktion:
%Vor%In C ++ Auto-Schlüsselwort kann vom Typ abgeleitet werden nicht nur in Variablen, sondern auch in Funktionen und Vorlagen:
%Vor%Aus der Sicht der Leistung wirkt sich auto keyword in C ++ nicht auf die Leistung aus . Und das var-Schlüsselwort wirkt sich auch nicht auf die Leistung aus .
Ein weiterer Unterschied kann in der Intellisense-Unterstützung in der IDE bestehen. Var Schlüsselwort in C # kann leicht abgeleitet werden und Sie werden den Typ mit der Maus über sehen. Mit Auto-Schlüsselwort in C ++ könnte es komplizierter sein, es hängt von der IDE ab.
Sie sind gleichwertig. Sie erlauben es Ihnen, den Typ einer Variablen nicht selbst anzugeben, aber die Variable bleibt stark typisiert. Die folgenden Zeilen sind in c # äquivalent:
%Vor%Und die folgenden Zeilen sind in C ++ äquivalent:
%Vor% Allerdings sollten Sie daran denken, dass in c ++ der korrekte Typ einer auto
-Variable anhand der Regeln der Vorlageargumentableitung für einen Funktionsaufruf ermittelt wird.
Um es einfach zu sagen: auto
ist eine viel kompliziertere Bestie als var
.
Erstens darf auto
nur Teil des abgeleiteten Typs sein; zum Beispiel:
Zweitens kann auto
verwendet werden, um mehrere Objekte gleichzeitig zu deklarieren:
Drittens wird auto
als Teil der Syntax des abschließenden Rückgabetyps in Funktionsdeklarationen verwendet:
Es kann auch für die Typableitung in Funktionsdefinitionen verwendet werden:
%Vor%Viertens: In der Zukunft kann damit begonnen werden, Funktionsvorlagen zu deklarieren:
%Vor%