Sie sind hier
E-Book

C++ - kurz & gut

Aktuell zu C++17

AutorKyle Loudon, Rainer Grimm
VerlagO'Reilly Verlag
Erscheinungsjahr2018
Seitenanzahl228 Seiten
ISBN9783960101994
FormatePUB
KopierschutzWasserzeichen
GerätePC/MAC/eReader/Tablet
Preis11,99 EUR
C++ ist eine komplexe Sprache mit vielen subtilen Facetten. Insbesondere Programmierer, die von einer anderen Programmiersprache umsteigen oder nur gelegentlich in C++ programmieren, haben ihre Schwierigkeiten mit ähnlichen und doch nicht identischen Features in Java oder C. Aber auch erfahrene C++-Programmierer müssen manchmal überlegen, wie ein bestimmtes Konstrukt oder Konzept in C++ implementiert ist. Ihnen allen bietet C++ - kurz & gut einen kompakten Überblick über die Strukturen und Syntaxelemente der Sprache, erläutert anhand von kurzen Beispielen. Die Kurzreferenz ist ideal zum schnellen Nachschlagen, sie bringt die C++-Sprachfeatures auf den Punkt. Das Nachschlagebändchen wurde für die 3. Auflage aktualisiert und erweitert, sie deckt jetzt den Standard C++17 ab.

Kyle Loudon ist Software-Entwickler bei Move und beschäftigt sich dort mit der Entwicklung mobiler Anwendungen für den Immobiliensektor. Er hat einige Jahre an der University of California unterrichtet und dort Kurse zum objektorientierten Programmieren mit C++ gegeben. Für O'Reilly hat er bereits das Buch Mastering Algorithms with C geschrieben. Rainer Grimm ist als Softwareentwickler und Schulungsleiter tätig. In den letzten Jahren hat er viele Präsenz- und Online-Schulungen zu Python und C++ gehalten, parallel dazu schreibt er gerne Artikel oder rezensiert ein gutes Buch für Fachzeitschriften. Seine Artikelserie zu modernem C++ erscheint seit mehreren Jahren. In seinen vielen Vorträgen behandelt er die Themen Design Patterns sowie objektorientierte, generische und funktionale Programmierung und deren Umsetzung in den etablierten Programmiersprachen.

Kaufen Sie hier:

Horizontale Tabs

Leseprobe

KAPITEL 2


Lexikalische Elemente


Auf der fundamentalsten Ebene besteht ein C++-Programm aus einzelnen lexikalischen Elementen, sogenannten Token. Token sind logisch zusammenhängende Einheiten, die durch den Lexer gebildet werden, indem er den Textstrom in einen Tokenstrom zerlegt. Token werden in der Regel durch Leerraum (Leerzeichen, Zeilenwechsel, Tabulatoren usw.) voneinander abgegrenzt, können aber auch gebildet werden, wenn der Start des nächsten Tokens erkannt wird. Dies ist in dem nächsten Beispiel schön zu sehen:

ival+3

Dieser Tokenstrom besteht aus drei Token: ival, + und 3. Wenn kein Leerraum vorhanden ist, bildet der Compiler die Token, indem er von links nach rechts nach der längstmöglichen logischen Einheit sucht.

Die Token werden an den Parser übergeben. Dieser bestimmt, ob der Tokenstrom die korrekte Syntax besitzt. Zusammen bilden die Token komplexere semantische Konstrukte wie Deklarationen, Ausdrücke und Anweisungen, die sich auf den Ausführungsfluss auswirken.

Kommentare


Kommentare sind Anmerkungen im Quellcode. Sie richten sich an Entwickler und werden vom Compiler vollständig ignoriert. Sie werden in Leerzeichen konvertiert.

Ein Kommentar ist ein beliebiger Textblock, der entweder in /* und */ eingeschlossen wird oder hinter zwei Schrägstrichen (//) auf einer einzelnen Zeile folgt. Kommentare der ersten Form können nicht ineinander verschachtelt werden. Sie erstrecken sich gerne über mehrere Zeilen:

/* Dieser Kommentar hat mehr als eine Zeile.

Hier ist ein weiterer Teil des Kommentars.*/

Kommentare der zweiten Form sind nützlich für kurze Erläuterungen, die nicht mehr als eine einzige Zeile benötigen:

z = MIN(x, y); // z ist der kleinste Wert.

Wenn ein einzeiliger Kommentar beginnt, erstreckt er sich bis zum Ende der Zeile. Es gibt keine Möglichkeit, den Kommentar vorher zu beenden.

Bezeichner


Bezeichner in C++ sind Zeichenfolgen, die als Namen von Variablen, Funktionen, Parametern, Typen, Sprungmarken, Namensräumen und Präprozessormakros verwendet werden. Bezeichner können aus Buchstaben, Ziffern und Unterstrichen bestehen, dürfen aber nicht mit einer Ziffer beginnen. Die folgenden Zeichenketten sind allesamt zulässige C++-Bezeichner:

i addressBook Mgr item_count

ptr2 NAME_LENGTH class_ showWindow

Folgende Regeln gelten für Bezeichner:

  • Bei Bezeichnern wird zwischen Groß- und Kleinschreibung unterschieden.
  • Bezeichner dürfen nicht identisch mit reservierten Schlüsselwörtern in C++ sein.
  • Bezeichner, die mit einem Unterstrich anfangen, sind für die Sprachimplementierung reserviert.
  • Obwohl C++ selbst keine Größenbegrenzungen für Bezeichner vorsieht, besitzt jeder Compiler und Linker Größenbegrenzungen, die in der Praxis relevant sein können.

Es gibt keine einheitlichen Stilkonventionen für Bezeichner. Viele Programmierer setzen aber Namen, die mit Kleinbuchstaben beginnen, für lokale Variablen, Instanzvariablen und Funktionen ein. Namen, die mit Großbuchstaben beginnen, werden dementsprechend für Typen, Namensräume und globale Variablen verwendet. Namen, die der Präprozessor verarbeitet, und Konstanten werden ganz in Großbuchstaben geschrieben.

Reservierte Schlüsselwörter


C++ definiert eine Reihe von Schlüsselwörtern und alternativen Token. Dies sind Zeichenfolgen mit besonderer Bedeutung in der Sprache. Diese Wörter sind reserviert und können nicht als Bezeichner verwendet werden. Die reservierten Schlüsselwörter in C++ lauten:

alignas

alignof

and

and_eq

asm

auto

bitand

bitor

bool

break

case

catch

char

char16_t

char32_6

class

compl

const

constexpr

const_cast

continue

decltype

default

delete

do

double

dynamic_cast

else

enum

explicit

export

extern

false

final

float

for

friend

goto

if

inline

int

long

mutable

namespace

new

noexcept

not

not_eq

nullptr

operator

or

or_eq

override

private

protected

public

register

reinterpret_cast

return

short

signed

sizeof

static

static_assert

static_cast

struct

switch

template

this

thread_local

throw

true

try

typedef

typeid

typename

union

unsigned

using

virtual

void

volatile

wchar_t

while

xor

xor_eq

Literale


Literale sind lexikalische Elemente, die explizite Werte in einem Programm repräsentieren. C++ definiert viele verschiedene Typen von Literalen, die alle unter ihrem jeweiligen Typ im Abschnitt »Fundamentale Typen« auf Seite 45 beschrieben werden. Darüber hinaus kennt C++ Funktionsliterale, die auch als Lambda-Funktionen bezeichnet werden.

Benutzerdefinierte Literale

Benutzerdefinierte Literale sind selbst definierte Literale. Diese werden in C++ für ganze Zahlen, Fließkommazahlen, C-Strings und auch Zeichen unterstützt. Für sie gilt die folgende Syntax: Built-in-Literal + _ + Suffix. Das Suffix stellt in der Regel eine Einheit dar:

101000101_b

63_s

10345.5_dm

123.45_km

100_m

131094_cm

33_cent

"Hallo"_i18n

Benutzerdefinierte Literale erlauben es, Werte direkt mit ihrer Einheit zu verknüpfen. Damit lassen sich Operanden in C++ implementieren, die bei Operationen ihre Einheit berücksichtigen: Dist myDis= 10345.5_dm + 123.45_km – 100_m + 131094_cm. Die C++-Laufzeitumgebung bildet die benutzerdefinierten Literale auf die entsprechenden Literaloperatoren ab (siehe Abschnitt »Operatoren überladen« auf Seite 146). Diese müssen vom Programmierer implementiert werden. So definiert in dem folgenden Beispiel der Namensraum Unit alle Literaloperatoren, die für das richtige Interpretieren des arithmetischen Ausdrucks Dist myDis= 10345.5_dm + 123.45_km – 100_m + 131094_cm benötigt werden. In Kombination mit der Klasse Dist, die einen Konstruktor, einen Plus- und einen Minusoperator anbietet, lässt sich der ganze Ausdruck evaluieren. Dist verwendet als Einheit cm:

class Dist{

public:

explicit Dist(double i):cm(i){}

friend Dist operator +(const Dist& a, const Dist& b){

return Dist(a.cm + b.cm);

}

friend Dist operator -(const Dist& a, const Dist& b){

return Dist(a.cm - b.cm);

}

private:

double cm;

};

namespace Unit{

Dist operator "" _km(long double d){

return Dist(100000 * d);

}

Dist operator "" _m(long double m){

return Dist(100 * m);

}

Dist operator "" _dm(long double d){

return Dist(10 * d);

}

Dist operator "" _cm(long double...

Blick ins Buch

Weitere E-Books zum Thema: Programmiersprachen - Softwareentwicklung

Apps effektiv managen und vermarkten

E-Book Apps effektiv managen und vermarkten
Die eigene App erfolgreich veröffentlichen: Von der Konzeption bis zur Vermarktung Format: PDF

Lernen Sie Ihre App effektiv, strukturiert und begeisternd weltweit zu vermarkten. In diesem praxisorientierten Buch erhalten Sie einen prägnanten Überblick von der Idee und Konzeption einer App,…

Management von IT-Projekten

E-Book Management von IT-Projekten
Von der Planung zur Realisierung Format: PDF

Kenntnisse des Projektmanagements und seine Anwendungsmöglichkeiten sind für IT-Manager und IT-Entwickler unentbehrlich. In diesem Buch werden die wichtigsten Verfahren und Methoden für das…

Informatik

E-Book Informatik
Anwendungsorientierte Einführung in die allgemeine Wirtschaftsinformatik Format: PDF

Das einführende Informatik-Lehrbuch wendet sich nicht nur an Informatik-Studenten, sondern sogar in erster Linie an Studierende und Praktiker solcher Disziplinen, in denen Informatik zur…

Profikurs ABAP®

E-Book Profikurs ABAP®
Konkrete, praxisorientierte Lösungen - Tipps, Tricks und jede Menge Erfahrung Format: PDF

Professionelle und sichere Anwendungsentwicklung unter SAP R/3® ist kein Zufall, sondern eine Sache der Erfahrung. Das Resultat: Tricks und Kniffe, von denen auch Sie als ABAP® Professional…

Management von IT-Projekten

E-Book Management von IT-Projekten
Von der Planung zur Realisierung Format: PDF

Kenntnisse des Projektmanagements und seine Anwendungsmöglichkeiten sind für IT-Manager und IT-Entwickler unentbehrlich. In diesem Buch werden die wichtigsten Verfahren und Methoden für das…

Dynaxity

E-Book Dynaxity
Management von Dynamik und Komplexität im Softwarebau Format: PDF

Das Buch wendet sich an IT-Entwickler, Projektmanager und CIO's. Hauptthema ist die gezielte Entwicklung von Fähigkeiten (Skills) jenseits der klassischen 'IT-Denke'. Fakt ist, dass laut…

Weitere Zeitschriften

ARCH+.

ARCH+.

ARCH+ ist eine unabhängige, konzeptuelle Zeitschrift für Architektur und Urbanismus. Der Name ist zugleich Programm: mehr als Architektur. Jedes vierteljährlich erscheinende Heft beleuchtet ...

Arzneimittel Zeitung

Arzneimittel Zeitung

Die Arneimittel Zeitung ist die Zeitung für Entscheider und Mitarbeiter in der Pharmabranche. Sie informiert branchenspezifisch über Gesundheits- und Arzneimittelpolitik, über Unternehmen und ...

Burgen und Schlösser

Burgen und Schlösser

aktuelle Berichte zum Thema Burgen, Schlösser, Wehrbauten, Forschungsergebnisse zur Bau- und Kunstgeschichte, Denkmalpflege und Denkmalschutz Seit ihrer Gründung 1899 gibt die Deutsche ...

dental:spiegel

dental:spiegel

dental:spiegel - Das Magazin für das erfolgreiche Praxisteam. Der dental:spiegel gehört zu den Top 5 der reichweitenstärksten Fachzeitschriften für Zahnärzte in Deutschland (laut LA-DENT 2011 ...

SPORT in BW (Württemberg)

SPORT in BW (Württemberg)

SPORT in BW (Württemberg) ist das offizielle Verbandsorgan des Württembergischen Landessportbund e.V. (WLSB) und Informationsmagazin für alle im Sport organisierten Mitglieder in Württemberg. ...

Deutsche Tennis Zeitung

Deutsche Tennis Zeitung

Die DTZ – Deutsche Tennis Zeitung bietet Informationen aus allen Bereichen der deutschen Tennisszene –sie präsentiert sportliche Highlights, analysiert Entwicklungen und erläutert ...

Die Großhandelskaufleute

Die Großhandelskaufleute

Prüfungs- und Praxiswissen für Großhandelskaufleute Mehr Erfolg in der Ausbildung, sicher in alle Prüfungen gehen, im Beruf jeden Tag überzeugen: „Die Großhandelskaufleute“ ist die ...

building & automation

building & automation

Das Fachmagazin building & automation bietet dem Elektrohandwerker und Elektroplaner eine umfassende Übersicht über alle Produktneuheiten aus der Gebäudeautomation, der Installationstechnik, dem ...