Einstieg in C++ (eBook)
547 Seiten
Rheinwerk Computing (Verlag)
978-3-8362-7865-2 (ISBN)
Mit diesem Buch gelingt Ihnen der Einstieg in die C++-Entwicklung mühelos. Anschauliche Erklärungen, praxisnahe Beispiele und Übungen begleiten Sie von den ersten Schritten bis zum fertigen Programm. Sie lernen alle wichtigen Themen wie Vererbung, Objektorientierung, Polymorphie, GUI-Entwicklung und Datenbanken. Kenntnisse in C oder einer anderen Sprache werden nicht vorausgesetzt.
Aus dem Inhalt:
- Sprachgrundlagen
- Referenzen und Pointer
- Objektorientierte Programmierung
- Vererbung und Polymorphie
- Moderne Bibliotheken: chrono, random, thread, filesystem
- Arbeiten mit Containern
- GUI-Entwicklung mit Qt
- Datenbanken mit SQLite verwalten
Die Fachpresse zur Vorauflage:
iX - Magazin für professionelle Informationstechnik: »Wer C++ lernen will oder eine Auffrischung auf C++11 benötigt, dürfte Gefallen an dem knapp 520 Seiten starken Lehrbuch finden.«
Thomas Theis ist Dipl.-Ing. für Technische Informatik und arbeitet als Berater und Trainer. Seit vielen Jahren gibt er als EDV-Dozent Kurse in verschiedenen Programmiersprachen. Er ist Autor vieler erfolgreicher Fachbücher.
2.8 Mehr über die Speicherung von Zahlen
Sie können an dieser Stelle bereits mit dem nächsten Kapitel fortfahren und die weiteren Abschnitte dieses Kapitels bei Bedarf später bearbeiten. Sie dienen der Ergänzung Ihres Wissens.
Für ganze Zahlen werden häufig Variablen des Datentyps int genutzt. Es gibt aber noch weitere ganzzahlige Datentypen. Ihre Gemeinsamkeit: Ganze Zahlen werden in den Variablen mathematisch genau gespeichert. Die verschiedenen Datentypen unterscheiden sich im Speicherbedarf und im gültigen Wertebereich.
Für Fließkommazahlen werden häufig Variablen des Datentyps double genutzt. Auch hier gibt es weitere Datentypen. Sie unterscheiden sich ebenfalls im Speicherbedarf und im gültigen Wertebereich. Zudem bieten sie eine unterschiedliche Genauigkeit. Sie sind allerdings niemals mathematisch genau.
2.8.1 Ganzzahlige Datentypen
Zunächst ein Programm mit den ganzzahligen Datentypen:
#include <climits>
using namespace std;
int main()
{
cout << "short: " << sizeof(short) << " Byte, ";
cout << "von " << SHRT_MIN << " bis " << SHRT_MAX << endl;
cout << "unsigned short: "
<< sizeof(unsigned short) << " Byte, ";
cout << "von 0 bis " << USHRT_MAX << endl;
cout << "int: " << sizeof(int) << " Byte, ";
cout << "von " << INT_MIN << " bis " << INT_MAX << endl;
int a = 42;
cout << "unsigned int: " << sizeof(unsigned int) << " Byte, ";
cout << "von 0 bis " << UINT_MAX << endl;
unsigned int b = 42U;
cout << "long: " << sizeof(long) << " Byte, ";
cout << "von " << LONG_MIN << " bis " << LONG_MAX << endl;
long c = 42L;
cout << "unsigned long: " << sizeof(unsigned long) << " Byte, ";
cout << "von 0 bis " << ULONG_MAX << endl;
unsigned long d = 42UL;
cout << "long long: " << sizeof(long long) << " Byte, ";
cout << "von " << LLONG_MIN << " bis " << LLONG_MAX << endl;
long long e = 42LL;
cout << "unsigned long long: "
<< sizeof(unsigned long long) << " Byte, ";
cout << "von 0 bis " << ULLONG_MAX << endl;
unsigned long long f = 42ULL;
int x = 2'000'000'000;
cout << "Viele Ziffern: " << x << endl;
}
Listing 2.6 Datei »datentyp_ganz.cpp«
Es werden die ganzzahligen Datentypen short, int, long und long long zusammen mit ihren vorzeichenlosen Varianten vorgestellt.
Die Bezeichnung unsigned bedeutet vorzeichenlos, also ohne Vorzeichen. Das Gegenteil von unsigned ist signed und bedeutet vorzeichenbehaftet, also mit Vorzeichen. Variablen eines vorzeichenlosen Datentyps können nur den Wert 0 oder einen positiven Wert annehmen. Allerdings ist ihr Wertebereich doppelt so groß wie der Wertebereich des zugehörigen vorzeichenbehafteten Datentyps.
Der Operator sizeof liefert den compiler-abhängigen Speicherbedarf des genannten Datentyps oder der genannten Variablen in Byte.
Konstanten dienen zur Speicherung von unveränderlichen Werten. C++ stellt eine Reihe von Systemkonstanten zur Verfügung, u. a. zur Speicherung der Grenzen der verschiedenen Wertebereiche. Sie werden mithilfe des Headers climits zur Verfügung gestellt. In Abschnitt 2.9, »Feste Werte in Konstanten speichern«, sehen Sie, wie Sie eigene Konstanten definieren können.
Ganze Zahlen werden standardmäßig dem passenden Datentyp zugeordnet. Falls Sie den Datentyp selbst festlegen möchten, müssen Sie die zugehörigen Literale verwenden. Die Zahl 42 wird als int-Wert erkannt, die Zahl 42U als unsigned int-Wert, die Zahl 42L als long-Wert, die Zahl 42UL als unsigned long-Wert, die Zahl 42LL als long long-Wert und die Zahl 42ULL als unsigned long long-Wert. Bei den Literalen können auch Klein- statt Großbuchstaben genutzt werden.
Seit C++14 kann der Apostroph als Trennzeichen zur besseren Lesbarkeit von langen Ziffernfolgen eingesetzt werden.
Die Angaben für den Speicherbedarf und den Wertebereich sind compiler-abhängig. Bei der Nutzung von MinGW unter Windows sehen Sie die folgende Ausgabe:
unsigned short: 2 Byte, von 0 bis 65535
int: 4 Byte, von -2147483648 bis 2147483647
unsigned int: 4 Byte, von 0 bis 4294967295
long: 4 Byte, von -2147483648 bis 2147483647
unsigned long: 4 Byte, von 0 bis 4294967295
long long: 8 Byte, von -9223372036854775808 bis 9223372036854775807
unsigned long long: 8 Byte, von 0 bis 18446744073709551615
Viele Ziffern: 2000000000
Bei der Nutzung des GCC-Compilers unter Ubuntu Linux oder des Clang-Compilers unter macOS stehen dem Datentyp long acht Byte zur Verfügung. Es folgt der zugehörige Teil der Ausgabe:
unsigned long: 8 Byte, von 0 bis 18446744073709551615
2.8.2 Datentypen für Fließkommazahlen
Es folgt ein Programm mit den Datentypen für Fließkommazahlen:
#include <iomanip>
#include <cfloat>
using namespace std;
int main()
{
cout << "float: " << sizeof(float) << " Byte, ";
cout << "von " << FLT_MIN << " bis " << FLT_MAX << endl;
cout << "double: " << sizeof(double) << " Byte, ";
cout << "von " << DBL_MIN << " bis " << DBL_MAX << endl;
cout << "long double: " << sizeof(long double) << " Byte, ";
cout << "von " << LDBL_MIN
<< " bis " << LDBL_MAX << endl;
cout << fixed << setprecision(30);
cout << "1/7 in float: " << 1.0F / 7 << endl;
cout << "1/7 in double: " << 1.0 / 7 << endl;
cout << "1/7 in long double: " << 1.0L / 7 << endl;
}
Listing 2.7 Datei »datentyp_fliesskomma.cpp«
Sie sehen die Angaben für die Datentypen float, double und long double. Die Konstanten für die Grenzen der Wertebereiche werden mithilfe des Headers cfloat zur Verfügung gestellt.
Bei der Ausgabe und bei der Eingabe sehr großer oder sehr kleiner Zahlenwerte empfiehlt sich die Exponentialschreibweise, also mit kleinem e oder auch großem E. Sie sehen sie bei der Ausgabe der Grenzen der Wertebereiche. Zwei weitere Beispiele:
5.2e3 = 5.2 * 103 = 5.2 * 1000 = 5200
5.2e-3 = 5.2 * 10-3 = 5.2 * 0.001 = 0.0052
Anhand der Division von 1 durch 7 wird die unterschiedliche Genauigkeit verdeutlicht. Das mathematisch genaue Ergebnis enthält unendlich oft die Zahlenfolge 142857. Beim Datentyp float wird ab der 9. Stelle nach dem Komma davon abgewichen, beim Datentyp double ab der 17. Stelle, beim Datentyp long double ab der 21. Stelle.
Fließkommazahlen werden standardmäßig dem Datentyp double zugeordnet. Falls Sie den Datentyp selbst festlegen möchten, müssen Sie auch hier die zugehörigen Literale verwenden....
Erscheint lt. Verlag | 28.7.2020 |
---|---|
Sprache | deutsch |
Themenwelt | Informatik ► Programmiersprachen / -werkzeuge ► C / C++ |
ISBN-10 | 3-8362-7865-0 / 3836278650 |
ISBN-13 | 978-3-8362-7865-2 / 9783836278652 |
Haben Sie eine Frage zum Produkt? |
Größe: 2,5 MB
DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasserzeichen und ist damit für Sie personalisiert. Bei einer missbräuchlichen Weitergabe des eBooks an Dritte ist eine Rückverfolgung an die Quelle möglich.
Dateiformat: EPUB (Electronic Publication)
EPUB ist ein offener Standard für eBooks und eignet sich besonders zur Darstellung von Belletristik und Sachbüchern. Der Fließtext wird dynamisch an die Display- und Schriftgröße angepasst. Auch für mobile Lesegeräte ist EPUB daher gut geeignet.
Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür die kostenlose Software Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür eine kostenlose App.
Geräteliste und zusätzliche Hinweise
Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.
aus dem Bereich