Zuhause Persönliche Finanzen Erstellen eigener UDLs in C ++ - Dummies

Erstellen eigener UDLs in C ++ - Dummies

Inhaltsverzeichnis:

Video: Google Maps | My Maps | Erstellen eigener Karten am PC 2025

Video: Google Maps | My Maps | Erstellen eigener Karten am PC 2025
Anonim

Die Standardbibliothek, gekoppelt mit den integrierten Funktionen von C ++, bieten Ihnen eine interessante Reihe von Literalen. Der wahre Wert von Literalen wird jedoch offensichtlicher, wenn Sie eigene erstellen.

Es gibt viele verschiedene Anforderungen, die Sie mithilfe von benutzerdefinierten Literalen (UDLs) lösen können. Drei allgemeine Anforderungen unterstützen jedoch Datenkonvertierungen, erleichtern die Arbeit mit benutzerdefinierten Typen und erzielen gewünschte Nebeneffekte ohne die übliche Anzahl von Codierungsproblemen.

Obwohl integrierte oder Standardbibliotheksliterale sowohl in Präfix- als auch in Suffixform vorliegen, können Sie das Suffixformular nur beim Definieren eigener Literale erstellen. Außerdem muss das Suffix mit einem Unterstrich beginnen. Der Unterstrich dient dazu, Konflikte mit vorhandenen Suffixen zu verhindern und sicherzustellen, dass andere Entwickler wissen, dass das Literal ein benutzerdefiniertes (nicht standardmäßiges) Formular ist.

Entwickeln einer Konvertierungs-UDL

Es ist möglich, Konvertierungen innerhalb einer UDL zu kapseln. Alles, was Sie tun müssen, wenn Sie eine solche UDL erstellen, ist das entsprechende Suffix, wenn Sie die Konstante definieren, um das gewünschte Ergebnis zu erhalten. Das Beispiel CustomUDL01 demonstriert eine Technik zum Definieren einer Konvertierung, die die Radiuseingabe in den Bereich eines Kreises in der Konstante ändert.

#include using Namespace std; constexpr langer Doppeloperator "_circ (langer Doppelradius) {Rückkehrradius * Radius * 3. 141592;} int Haupt () {Doppel x = 5. 0_circ; cout <<" Der Kreisbereich ist: "<< x << endl; return 0;}

Um die UDL zu erstellen, verwendet das Beispiel einen constexpr mit einem Rückgabewert eines langen double und einem Eingabewert, radius, eines langen double. Die Gleichung zur Berechnung der Fläche eines Kreises ist πr 2 Wie Sie sehen, führt das Beispiel die korrekte Berechnung als Teil des constexpr aus.

Immer wenn Sie eine benutzerdefinierte UDL erstellen, wird der Compiler zwingt Sie dazu, den größten Typ für die Konvertierung zu verwenden.Das bedeutet, dass Sie ein langes Double für Fließkommaliterale und unsigned long long für Ganzzahlliterale verwenden müssen, auch wenn Sie später einen kleineren Typ verwenden, wie dies in diesem Fall der Fall ist. Wenn Sie beispielsweise x als double deklarieren, muss das Literal selbst den größtmöglichen Typ verwenden.

Um eine UDL des neuen Typs zu deklarieren, erstellt das Beispiel x, das das Suffix _circ verwendet. s das Ergebnis auf dem Bildschirm. Wenn Sie dieses Beispiel ausführen, sehen Sie, dass der richtige Wert wie hier gezeigt in x platziert wurde:

Der Bereich des Kreises ist: 78. 5398

Entwickeln eines benutzerdefinierten Typs UDL

Viel Code, den Sie Begegnung stützt sich auf benutzerdefinierte Typen, die schwer zu folgen und zu verstehen sind.Das Erstellen einer UDL zur Vereinfachung des Codes macht die Dinge klarer und reduziert das Fehlerpotenzial. Das Beispiel CustomUDL02 zeigt einen benutzerdefinierten Typ, den Operator, mit dem die UDL erstellt wurde, sowie die Verwendung der UDL zum Definieren eines Liters.

#include using Namespace std; struct MyType {MyType (doppelte Eingabe): Wert (Eingabe) {} double Wert;}; MyType-Operator "_mytype (langer double-Wert) {return MyType (Wert);} int main () {auto UDLType = 145. 6_mytype; cout << uDLType. Value << endl; return 0;}

Um zu arbeiten, müssen Sie einen Konstruktor für Ihren Typ erstellen, der die Anzahl der Eingaben akzeptiert, die zur Konfiguration des Typs erforderlich sind. Der Konstruktor muss mindestens einen Typ akzeptieren oder der vom Benutzer bereitgestellte Eingabewert geht verloren.

nicht den gleichen Datentyp wie vom Operator benötigt, aber sie müssen vom gleichen Typ sein, zum Beispiel können Sie ein langes double nicht in ein int umwandeln.

Wenn Sie dieses Beispiel ausführen, sehen Sie eine Ausgabe Der Wert von 145. 6 ist der Wert, den Sie in den benutzerdefinierten Typ eingeben.Es ist möglich, ziemlich komplexe Setups mit diesem Ansatz zu handhaben.Der Benutzer Ihres benutzerdefinierten Typs erhält die Fähigkeit, klaren Code zu erstellen, der leicht zu folgen und zu interpretieren ist, selbst wenn die zugrunde liegenden Typen sind komplex.

Verwenden einer benutzerdefinierten UDL für Nebenwirkungen

Eine der interessantesten ses für UDLs ist das Erstellen von Nebeneffekten (eine andere Operation als die normale oder normale Operation, um die Anwendung kürzer und effizienter zu machen oder um zusätzliche Flexibilität zu bieten). Sie möchten eine bestimmte Art von Operation definieren, die als Ergebnis der Definition des Literals stattfindet.

Was Sie erhalten, ist immer noch ein Literal, aber ein Literal, das nicht notwendigerweise einen Wert bezeichnet, den Sie später verwenden möchten. Das Beispiel CustomUDL03 zeigt eine solche nicht-traditionelle Verwendung.

#include using Namespace std; void operator "_countdown (vorzeichenloser langer langer Wert) {for (int i = Wert; i> = 0; i--) cout << i << endl;} int main () {10_countdown; return 0;}

Beachten Sie, dass der Operator _countdown nicht an etwas angehängt ist, das Sie normalerweise mit einem Wert assoziieren würden.Es gibt überhaupt keinen Wert zurück. Was Sie stattdessen erhalten, ist ein Nebeneffekt. Wenn Sie dieses Beispiel ausführen, siehe diese Ausgabe.

10 9 8 7 6 5 4 3 2 1 0

Was passiert ist, ist, dass der Compiler 10_countdown durch einzelne cout-Anweisungen ersetzt hat, eine für jede Iteration der Schleife. 11 cout-Anweisungen, die die Werte zwischen 10 und 0 ausgeben (in umgekehrter Reihenfolge) Die Nebeneffekt-UDL eröffnet allerlei interessante Möglichkeiten zur Erstellung von Code, der bestimmte sich wiederholende Aufgaben so vereinfacht, dass ihre Verwendung offensichtlich wird.

Erstellen eigener UDLs in C ++ - Dummies

Die Wahl des Herausgebers

ÜBen Mathe-Fragen für die Praxis: Sequenzen - Dummies

ÜBen Mathe-Fragen für die Praxis: Sequenzen - Dummies

Wenn Sie eine Frage zur Praxis Core-Prüfung beantworten Wenn Sie eine arithmetische oder geometrische Sequenz lösen müssen, denken Sie daran: Es geht darum, regelmäßige Muster zu finden - und manchmal rückwärts zu arbeiten. In den folgenden Übungsfragen fängst du damit an, einen bestimmten Begriff in einer Folge zu finden (einfach: suche einfach nach dem Unterschied zwischen jedem ...

ÜBen Mathematische Fragen für die Praxis: Ähnliche und kongruente Formen - Dummies

ÜBen Mathematische Fragen für die Praxis: Ähnliche und kongruente Formen - Dummies

Auch wenn zwei Formen aussehen identisch, können sie nicht sein. Zum Beispiel können Sie bei der Praxis Core-Prüfung auf eine Frage stoßen, bei der zwei Formen gleich aussehen, aber es wird Ihnen gesagt, sie seien "ähnlich". " Was bedeutet das? Was ist, wenn sie als "kongruent" gekennzeichnet sind? Wenn Sie sich nicht sicher sind, sollten die folgenden Übungsfragen (und ihre Erklärungen) ...

ÜBen Mathematische Fragen für die Praxis: Vereinfachen eines algebraischen Ausdrucks - Dummys

ÜBen Mathematische Fragen für die Praxis: Vereinfachen eines algebraischen Ausdrucks - Dummys

Einige algebraische Ausdrücke auf der Praxis Core Prüfung kann einschüchternd aussehen, und Sie können sogar auf sie aufgeben und weitermachen. Wie Sie in den folgenden Übungsfragen sehen werden, können Sie jedoch einige einfache Techniken verwenden, wie das Faktorisieren und Kombinieren von ähnlichen Begriffen, um sie zu lösen. Übungsfragen Welche der folgenden ist die vereinfachte ...

Die Wahl des Herausgebers

Fotografieren im Sportmodus mit einer Canon EOS Rebel T3-Kamera - Dummies

Fotografieren im Sportmodus mit einer Canon EOS Rebel T3-Kamera - Dummies

Der Sportmodus der Canon Rebel T3 und T3i führt zu einer Reihe von Einstellungen, mit denen Sie sich bewegende Motive fotografieren können. Zunächst wählt die Kamera eine kurze Verschlusszeit aus, die zum Stoppen der Bewegung benötigt wird. "Farben, Schärfe und Kontrast sind alle im Sportmodus Standard, wobei keine der Anpassungen im Portrait ...

Aufnahme von Bildern im Nahaufnahmemodus mit einer Canon EOS Rebel T3-Kamera

Aufnahme von Bildern im Nahaufnahmemodus mit einer Canon EOS Rebel T3-Kamera

Der Nahaufnahme-Modus der Canon Rebel T3 und T3i ermöglicht es Ihnen nicht, näher am Motiv zu fokussieren als bei einigen Nicht-Spiegelreflexkameras. Die Nahfokussierungsfähigkeiten Ihrer Kamera hängen ganz von der Linse ab, die Sie verwenden. (In der Bedienungsanleitung Ihres Objektivs sollte die minimale Fokussierentfernung angegeben werden.) Auswahl des Nahaufnahmemodus ...

Fotografieren im Querformat mit einer Canon EOS Rebel T3-Kamera - Dummies

Fotografieren im Querformat mit einer Canon EOS Rebel T3-Kamera - Dummies

Der Landschaftsmodus der Canon Rebel T3 und T3i, der für die Aufnahme von Aussichtspunkten, Stadtskylinen und anderen großformatigen Motiven konzipiert wurde, erzeugt eine große Schärfentiefe. Infolgedessen erscheinen Objekte, die sich sowohl in der Nähe der Kamera als auch in einiger Entfernung befinden, scharf fokussiert. Wie im Hochformat-Modus erreicht der Querformat-Modus die größere Schärfentiefe durch Manipulieren von ...

Die Wahl des Herausgebers

Erstellen und Verwenden von Verknüpfungen im dynamischen GP-Navigationsbereich - Dummies

Erstellen und Verwenden von Verknüpfungen im dynamischen GP-Navigationsbereich - Dummies

Microsoft Dynamics GP-Verknüpfungen werden angezeigt. Der obere Teil des Navigationsfensters, wenn Sie Ihre Dynamics GP Homepage anzeigen. Verwenden Sie Verknüpfungen, um häufig verwendete Fenster und Ressourcen in Dynamics GP schnell zu öffnen. Zum Beispiel können Sie einen Satz von Verknüpfungen zu den Fenstern erstellen, die Sie regelmäßig verwenden, und einen anderen Satz für die ...

MYOB Software für Dummies-Spickzettel (Neuseeland-Ausgabe) - Dummies

MYOB Software für Dummies-Spickzettel (Neuseeland-Ausgabe) - Dummies

Sie können MYOB verwenden für Ihre Geschäftsanforderungen schnell und einfach durch diese einfachen Verknüpfungen. Wenn Sie zusätzliche Hilfe benötigen, bieten viele Websites MYOB-Unterstützung an.

MYOB Software für Dummies Cheat Sheet (Australische Ausgabe) - Dummies

MYOB Software für Dummies Cheat Sheet (Australische Ausgabe) - Dummies

Mit MYOB für Ihre Unternehmensanforderungen kann durch diese einfachen Abkürzungen noch schneller und einfacher gemacht werden. Und wenn Sie Hilfe benötigen, gibt es viele Websites, die Unterstützung anbieten.