Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

C++ Grundkurs

Typinformationen

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Es stehen in C++ verschiedene Operatoren zur Verfügung, um Typinformationen vom Compiler auszulesen und diese zur Laufzeit zu verwenden.
03:48

Transkript

In dieser Lektion möchte ich Ihnen Typinformationen mit typeid in C++ vorstellen. Mit typeid erlaubt es Ihnen C++, Typinformationen zur Laufzeit des Programms zu ermitteln. Das betrifft nicht nur Typinformationen für Variable, sondern auch für Typen. Um das zu machen, benötigt man stad::type_info und das schaut dann folgendermaßen aus. Ich habe hier einen Circle, eine Klasse Circle, eine Instanz dieser Klasse c, und dann kann ich sowohl die Klasse Circle verwenden als auch die Instanz, um ein type_info Objekt zu instanziieren und mit ihm dann weiterzuarbeiten. Hier will ich noch auf etwas Besonderes hinweisen. Es gibt die sog. Type Traits-Bibliothek. Das ist eine relativ neue Bibliothek in C++. Die erlaubt Ihnen, Typinformationen zur Kompilierzeit zu erhalten, Typen zur Kompilierzeit zu vergleichen, Typen zur Kompilierzeit zu modifizieren. Ich habe explizit Kompilierzeit hier dreimal verwendet, weil diese Bibliothek zur Kompilierzeit ausgeführt wird, während diese hier zur Laufzeit ausgeführt wird. Der feine Unterschied ist, dass diese Funktion hier zusätzliche Kosten für die Laufzeit verursacht, wenn sie auch klein sind. Diese Type Traits-Bibliothek eben nicht. Jetzt stelle ich Ihnen das type_info-Objekt noch ein bisschen genauer vor. Type information, type_info, um diese zu verwenden, brauchen Sie natürlich auch wieder den Header type_info. Sie können zwei Dinge mit type_info-Objekten machen. Sie können sie vergleichen, ist gleich bzw. identisch, nicht identisch, und Sie können den Namen vom Objekt, Typ oder einen Wert abfragen. Beides stelle ich hier vor. Hier schaue ich mir typeid von a an und die typeid von b und vergleiche die beiden und bekomme je nachdem true oder false heraus. Entsprechend davon wird der if-Zweig ausgeführt oder er wird nicht ausgeführt. Hier entgegen schnappe ich mir das type_info-Objekt und frage den Namen ab. Der Name ist in der Regel nicht besonders schön, aber er gibt Ihnen zumindest einen Hinweis darauf, welcher Typ dem Typ zugrunde liegt oder welcher Typ dem Wert zugrunde liegt. Jetzt habe ich noch eine Warnung. Den Namen, den name, zurückgibt, der ist nicht definiert. Der ist sozusagen implementierungsabhängig. Es geht sogar so weit, dass für zwei verschiedene Typen der gleiche Name zurückgegeben werden darf. Dann ist die Implementierung immer noch wohl definiert. Mir ist das tatsächlich nie passiert, und ich verändere Typinformationen schon länger mit den Compilern clang, gcc, aber auch Microsoft Visual C++, aber theoretisch kann es passieren. Jetzt will ich mir mit Ihnen die Typinformationen in der Anwendung anschauen. Mein kleines Programm sehen Sie hier. Als erstes frage ich die typeid von int und die von long long ab. Sie sehen, wenn die gleich sind, wird dieser Zweig ausgeführt. Wenn die nicht gleich sind, wird dieser Zweig ausgeführt. Sie sehen, int und long long sind different. Das haben wir natürlich schon vorher gewusst. In dieser Zeile hier interessiert mich der konkrete Name und Sie sehen, int wird i ausgegeben, für long long wird x ausgegeben, was für extended int steht. Weiter im Text. Jetzt verwende ich nicht Typen wie hier oben, sondern jetzt verwende ich Variablen. Ich initialisiere eine Variable i mit dem Wert 2011. Ich gebe mir den Namen aus. Sie sehen, ich bekomme natürlich auch wieder i für Integer und x für extended Integer. Hier mache ich das Gleiche wie oben. Ich frage die Typeninformation nach ihrer Identität ab und bekomme natürlich wieder heraus, dass sie verschieden sind. In dieser Lektion habe ich Ihnen Typinformationen in C++ vorgestellt. Ich habe insbesondere gezeigt, dass Typinformationen zwei Operationen erlauben. Sie können mit ihnen auf Identität testen und Sie können den konkreten Namen eines Typs oder eines Wertes abfragen.

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!