Wolf / Guddat | Grundkurs C++ | E-Book | sack.de
E-Book

E-Book, Deutsch, 495 Seiten

Wolf / Guddat Grundkurs C++

E-Book, Deutsch, 495 Seiten

ISBN: 978-3-8362-7638-2
Verlag: Rheinwerk Computing
Format: EPUB
Kopierschutz: Adobe DRM (»Systemvoraussetzungen)



Dieser Grundkurs ist genau das Richtige für alle, die einen schnellen Einstieg in die Programmiersprache C++ und einen Überblick über die Grundlagen ohne viel Beiwerk suchen. Ausführlich und jederzeit verständlich erklären Martin Guddat und Jürgen Wolf alles, was notwendig ist, damit Sie modernes C++ lernen und objektorientiert programmieren können.
Von der ersten Seite an geht es sofort los mit einfachen Programmen bis hin zur Entwicklung komplexerer Anwendungen. Übungen am Ende jedes Kapitels helfen Einsteigern und vor allem Selbstlernern beim Verstehen der Sprache. Die kompakte Darstellung macht das Buch zu einer unverzichtbaren Referenz für die Arbeit mit C++.
Diese vierte Auflage wurde umfassend überarbeitet und modernisiert.
Das Buch eignet sich hervorragend als Begleiter für das Studium der Informatik und anderer technischer Fächer.Aus dem Inhalt:Das erste Programm in C++BasisdatentypenTypumwandlungVerzweigungenSchleifenFunktionenPräprozessor-DirektivenArrays und Zeichenketten (Strings)Zeiger (Pointer)Dynamische Speicherobjekte und StrukturenNamensräumeModulare ProgrammierungKlassen und ObjekteVererbungOperatoren überladenTemplatesExceptionhandling (Fehlerbehandlung)Modernes C++ bis C++20
Die Fachpresse zur Vorauflage:
LINUX MAGAZIN: »Der C++-Grundkurs überzeugt durch eingängige Erklärungen aller wichtigen Eigenschaften der Programmiersprache in einem kompakten Format.«
Wolf / Guddat Grundkurs C++ jetzt bestellen!

Weitere Infos & Material


3.4    Ganzzahltypen
Ganzzahlen mit und ohne Vorzeichen werden in der Programmierung vermutlich am häufigsten verwendet. C++ bietet für solche Daten gleich mehrere Datentypen, die integralen Datentypen. Der bevorzugte Datentyp für Ganzzahlen lautet int. Die meisten Systeme können mit diesem Datentyp am natürlichsten umgehen und oft auch am schnellsten rechnen. Üblicherweise wird ein int-Wert aus mindestens zwei Bytes zu je acht Bits gebildet. Mit diesen 16 Bits kann der gespeicherte Wert 216 = 65.536 Ausprägungen haben. Verteilt man diese 65.536 Ausprägungen auf positive und negative Zahlen, erstreckt sich der Wertebereich von –32.768 bis +32.767. Wenn ein anderer Wertebereich benötigt wird, muss einer der anderen verfügbaren Datentypen ausgewählt werden. In Tabelle 3.1 finden Sie die Datentypen für vorzeichenbehaftete Ganzzahlen mit ihrer Mindestgröße und dem entsprechend verfügbaren Wertebereich (die tatsächlichen Wertebereiche sind meistens größer). Datentyp Bytes (mindestens) Wertebereich (mindestens) char 1 mit Vorzeichen (signed) –128 bis +127 oder ohne Vorzeichen (unsigned) 0 bis +255 short 2 –32.768 bis +32.767 int 2 –32.768 bis +32.767 long 4 –2.147.483.648 bis +2.147.483.647 long long 8 –9.223.372.036.854.775.808
bis +9.223.372.036.854.775.807 Tabelle 3.1     Grundlegende Datentypen für Ganzzahlen Es gibt außerdem noch den ganzahligen Datentyp bool, der aber gemeinsam mit seinen Einsatzfällen in Kapitel 5, »Kontrollstrukturen«, behandelt wird. Sind die Wertebereiche nicht auf allen Systemen gleich? C++ legt nicht exakt fest, wie viel Speicher für einen bestimmten Datentyp verwendet werden muss. Damit ist auch der Wertebereich der Typen nicht exakt bestimmt. Der C++-Standard sieht für jeden Datentyp lediglich eine Mindestgröße vor. Das ist Absicht: Dadurch können die für den Prozessor und das Betriebssystem effizientesten Größen gewählt werden. Auf den meisten Compilern und Plattformen werden diese Mindestgrößen übertroffen. Auf der Plattform, auf der ich arbeite, hat ein int die Größe von 4 Byte, also 32 Bit, und überdeckt den Wertebereich von –2.147.483.648 bis +2.147.483.647. Ich werde ihnen weiter unten auch zeigen, wie Sie die tatsächlichen Werte für Ihr System herausfinden. Wie in der Tabelle schon angedeutet ist, lässt der C++-Standard außerdem offen, ob der Datentyp char Werte mit oder ohne Vorzeichen speichert. Dazu erfahren Sie aber weiter unten noch mehr. Die exakte Größe der Datentypen ist nicht festgelegt, aber deren Mindestgrößen und Reihenfolge: char <= short <= int <= long <= long long (<= bedeutet hier: Die Größe ist kleiner oder gleich.) Der Datentyp char ist der kleinste; short, int, long und long long sind jeweils mindestens so groß wie ihre Vorgänger. short oder short int? Die Datentypen heißen genau genommen short int, int, long int und long long int. In der Praxis wird aber üblicherweise short, long und long long verwendet. Wenn Sie eine Variable definieren, müssen Sie also abschätzen, welchen Wertebereich Sie benötigen werden, und dann den entsprechenden Datentyp auswählen. Datentypen mit festen Größen Die offene Vorgabe für die Größe der Datentypen ist also so beabsichtigt. Wenn Sie aber doch einmal genau festgelegte Größen verwenden müssen, beispielsweise aus Kompatibilitätsgründen, verwenden Sie die in der #include enthaltenen Typdefinitionen wie int32_t und int64_t, um beispielsweise vorzeichenbehaftete Ganzzahltypen mit 32 und 64 Bit, also 4 und 8 Byte, zu erhalten. Dort sind auch weitere Varianten dieser Art definiert. Diese werden bei der Übersetzung in passende Datentypen für Ihr System umgesetzt. Eine folgendermaßen definierte Variable int32_t ivar32 = 1234; würde auf meinem System mit dem dortigen 32-Bit-Datentyp int implementiert werden. Vorzeichenlos und vorzeichenbehaftet Für die oben dargestellten Ganzzahl-Datentypen kann man festlegen, ob sie Werte mit oder ohne Vorzeichen speichern können. Ohne weiteren Zusatz geht der Compiler davon aus, dass Werte mit Vorzeichen gespeichert werden sollen. Eine Ausnahme bildet der Datentyp char, auf den wir gleich noch separat eingehen werden. Wenn Sie eine int-Variable wie folgt vereinbaren: int wert = 0; dann können in dieser Variablen wert (abhängig von der Implementierung) mindestens Zahlen in einem Bereich von –32.768bis +32.767 gespeichert werden (siehe dazu Tabelle 3.1). Sie können für eine ganzzahlige Variable aber auch vereinbaren, dass sie ohne Vorzeichen verwendet wird. Hierfür müssen Sie lediglich das Schlüsselwort unsigned voranstellen, beispielsweise so: unsigned int positiv = 0; In diesem Fall könnten Sie keine negativen Werte mehr in positiv speichern. Dafür reicht der (positive) Wertebereich von positiv jetzt bis 65.565. Größerer Wertebereich bedeutet nicht größer Achtung, die Speichermenge, die für int und unsigned int verwendet wird, ist gleich, ebenso wie die Anzahl der unterschiedlichen Werte, die in der Variablen gespeichert werden können. Mit unsigned verschiebt sich lediglich der Wertebereich der 65.636 Ausprägungen von mindestens -32.768 bis +32.6767 auf mindestens 0 bis +65.565, wie in Abbildung 3.1 gezeigt wird. Abbildung 3.1     »unsigned« ändert nicht die Breite des Typs, nur der Wertebereich verschoben. Wenn Sie einer vorzeichenlosen Variablen einen Wert mit Vorzeichen zuweisen, wird dieser Wert in einen Wert ohne Vorzeichen konvertiert. unsigned int positiv = -2; // 65.564 oder 4.294.967.294 In unserem Beispiel gehen Sie praktisch in dem verfügbaren Wertebereich beginnend bei 0 um zwei Schritte »zurück« und erhalten als Ergebnis den zweithöchsten Wert, den Sie in dem vorzeichenlosen Datentyp speichern können. Gemischte Verwendung vermeiden! Wie Sie oben schon gesehen haben, erfordert die gemischte Verwendung von Datentypen mit und ohne Vorzeichen eine gewisse Vorsicht, damit es nicht zu unerwarteten Ergebnissen kommt. Viele Compiler sind zudem so voreingestellt, dass sie in diesem Fall keine Warnung ausgeben und eine entsprechende Warnfunktion explizit aktiviert werden muss. Natürlich gibt es mit signed auch ein Schlüsselwort, um eine Variable explizit als vorzeichenbehaftet zu vereinbaren. Dabei entspricht die Schreibweise signed int wert = 0; der von int wert = 0; Das Gleiche wie für int gilt auch für die Vorzeichen der Datentypen short, long und long long. Die Verwendung des Schlüsselwortes signed ist dort nur ein zusätzlicher Hinweis, diese Datentypen sind ohne Verwendung...


Ihre Fragen, Wünsche oder Anmerkungen
Vorname*
Nachname*
Ihre E-Mail-Adresse*
Kundennr.
Ihre Nachricht*
Lediglich mit * gekennzeichnete Felder sind Pflichtfelder.
Wenn Sie die im Kontaktformular eingegebenen Daten durch Klick auf den nachfolgenden Button übersenden, erklären Sie sich damit einverstanden, dass wir Ihr Angaben für die Beantwortung Ihrer Anfrage verwenden. Selbstverständlich werden Ihre Daten vertraulich behandelt und nicht an Dritte weitergegeben. Sie können der Verwendung Ihrer Daten jederzeit widersprechen. Das Datenhandling bei Sack Fachmedien erklären wir Ihnen in unserer Datenschutzerklärung.