Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

C++ Grundkurs

Constexpr-Methoden

Testen Sie unsere 2015 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
C++ führt constexpr-Methoden standardmäßig zur Compile-Zeit aus. Die Verwendung von dynamischen Objekten ermöglicht es, diese ebenfalls zur Laufzeit auszuführen.
02:35

Transkript

In dieser Lektion möchte ich sog. *constexpr*-Methoden vorstellen. *constexpr* bezeichnet ein sogenannten konstanten Ausdruck. Konstante Ausdrücke sind Ausdrücke, die der Compiler zur Kompilierzeit ausführen kann. Dementsprechend sind *constexpr*-Methoden Methoden, die der Compiler zur Kompilierzeit ausführen kann. Das heißt, zur Laufzeit ist die Methode bereits ausgewertet. *constexpr*-Methoden lassen sich zur Laufzeit aber mit dynamischen Objekten verwenden. Also Objekte, die zur Laufzeit des Programms erzeugt wurden. *constexpr*-Methoden sind immer *const*. *constexpr*-Methoden können nur von *constexpr*-Instanzen, also von *constexpr*-Objekten aufgerufen werden. Sie müssen hinreichend einfach sein. Das heißt, eine *constexpr*-Methode darf nur aus einer Return-Anweisung bestehen und eine *constexpr*-Methode kann nur Funktionen, Methoden oder globale Variablen verwenden, die selber *constexpr* sind. Sie sehen, da gibt es einige Einschränkungen. Ich zeige es Ihnen jetzt am Beispiel. Hier habe ich eine Klasse *Account*. Diesmal etwas besonders. Klasse *Account*, sowohl der Konstruktor über einen *int*, als auch die Methode *getAmount*, also auch die Methode *getAccountFees* sind *constexpr* deklariert. Jetzt schaue ich mir mit Ihnen die *main*-Funktion an. Hier erkläre ich ein *accConst(15)* vom Typ *Account*, der *constexpr* ist. Was heißt das? Dieses Objekt *accConst* wird zur Übersetzungszeit des Programms erzeugt. Dieser ganze Code hier wird zur Übersetzungszeit ausgewertet. Was tue ich hier? Ich instanziiere *accConst* mit dem Wert 15. 15 ist selber ein konstanter Ausdruck, also kann ich es so verwenden, wie ich es hier verwende. Dann frage ich *getAmount* ab, binde das an eine *constexpr* *double*, gebe den Wert aus und frage hier noch die Gebühren ab. Ich kann aber auch *constexpr*-Methoden mit dynamischen Objekten verwenden. Das heißt, dynamische Objekte sind Objekte, die zur Laufzeit erzeugt werden. Sie sehen, hier fährt das *constexpr*. Dieses Objekt *accDyn* wird zur Laufzeit des Programms erzeugt. Dementsprechend kann ich den Amount rauslesen und kann auch die Gebühren ausgeben. Sie sehen, das Ergebnis ist identisch. Der feine Unterschied, den man hier nicht sieht, ist eben, dass dieses hier alles zur Kompilierzeit geschieht und dieses hier alles zur Laufzeit. In dieser Lektion habe ich Ihnen *constexpr*-Methoden vorgestellt. *constexpr*-Methoden sind Methoden, die zur Kompilierzeit ausgeführt werden können.

C++ Grundkurs

Steigen Sie in die mächtige Programmiersprache C++ ein und lernen Sie dabei alle wichtigen Funktionen mit Anwendungsbeispielen kennen.

8 Std. 14 min (147 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!