Unterschiede zu C

Kommentare

// ein einzeiliger Kommentar
 
/*
ein
mehrzeiliger
Kommentar
*/

Initialisierung

Zusรคtzliche Syntax bei Deklarationen, die verlustvolle Typenkonvertierung erkennt und explizite Zuweisung verhindert:

int i = 7.2;   // warning ist generated, but compiles
int i { 7.2 }; // compile time error in C++

Speicherverwaltung

Dynamische Speicherverwaltung ist Teil der Sprache mit Schlรผsselwรถrtern new und delete

  • fรผr Arrays new[] und delete[]
int* arr = new int[10];
delete[] arr;

Primitive Datentypen

  • bool: 1 Byte, true oder false
  • char: 1 Byte
  • int: 4 Bytes
    • mรถgliche Qualifizierer: short, long, long long
  • float: 4 Bytes
  • double: 8 Bytes
    • mรถglicher Qualifizierer: long

C++ ist statisch getypt (statically typed) Typen der Variablen mรผssen zur Compilezeit ermittelt werden

  • wenn Ermittlung automatisch mรถglich ist, dann kann des Schlรผsselwort auto verwendet werden

Zeiger & Referenzen

Zeiger funktionieren genauso wie in C, Referenzen gibt es nur in C++

ZeigerReferenz
T* ist Zeiger auf ein Objekt des Typs TT& ist Referenz auf ein Objekt des Typs T
Kann beliebig zur Laufzeit verรคndert werden: Zeigerarithmetik und &-OperatorKann zur Laufzeit nicht verรคndert werden
==-Operator vergleicht Speicheradressen==-Operator vergleicht referenzierte Objekte
Inhalt des Speichers muss mit *-Operator gelesen (rvalue) und geschrieben (lvalue) werdenInhalt des Speicher wird direkt mit dem Variablennamen gelesen (rvalue) und geschrieben (lvalue)
Muss nicht initialisiert werdenMuss initialisiert werden
Belegt immer Speicherplatz, der GrรถรŸe des Adressraums (z.B. 32 bit) entsprechendBelegt nicht notwendigerweise Speicherplatz (Compiler darf Referenz durch eigentlich referenzierte Variable ersetzen)