• Keine Ergebnisse gefunden

Einführung in C++ Einführung in C++

N/A
N/A
Protected

Academic year: 2021

Aktie "Einführung in C++ Einführung in C++"

Copied!
5
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Einführung in C++

Einführung in C++

(2)

Instantiierung von Objekten IIV Instantiierung von Objekten IIV

Dynamische Objekte werden angelegt, wenn sie

benötigt werden, und wieder entsogt, wenn sie nicht mehr gebraucht werden.

In C gab es dazu die Funktionen malloc() (zum

Reservieren des Speichers) und free() zum wieder freigeben.

In C++ können diese Funktionen aber nicht verwendet werden, da es mit der bloßen Bereitstellung von

Speicher nicht getan ist (Konstruktor, etc...)

Daher gibt es in C++ die Funktionen new() und

delete()

(3)

Instantiierung von Objekten V Instantiierung von Objekten V

Wie in C werden auch hier Zeiger benötigt, in denen das Ergebnis der new()-Operation abgelegt wird.

kreis *kopf ; // Pointer anlegen rechteck *rumpf ;

void init() { // Objekt erstellen und „einhängen“

kopf = new kreis (100, 50, 20, SCHWARZ);

rumpf = new rechteck (170, 80, 21, SCHWARZ);

}

void zeichnung() { ...

kopf ­> draw();    //im Unterschied zur statischen Allokation rechteck ­> draw(); //werden in dynamisch allozierten Objekten  } //die Funktion draw() mit dem ­> verwendet void destore() { //Anschließend muss der nicht mehr

delete kopf; //benötigte Speicher wieder freigegeben delete rumpf; //werden.

}

(4)

Referenzen Referenzen

void tausch(int *a, int *b) { int tmp;

tmp = *a;

*a = *b;

*b = tmp;

}

int main () {

int x = 1, y = 3;

tausch(&x, &y);

return(0);

}

Sie sind neu in C++. Eine Referenz ist ein konstanter Zeiger, der bei jeder Verwendung automatisch

dereferenziert wird.

void tausch(int &a, int &b) { int tmp;

tmp = a;

a = b;

b = tmp;

}

int main() {

int x = 1, y = 3;

tausch(x, y);

return(0);

}

Eine Referenz ist praktisch ein Alias für die gleiche

Speicherstelle, die auch für eine Variable mit anderem Namen gilt.

Tausch durch Pointer

Tausch durch Referenz

(5)

Referenzen Referenzen

In der Definition steht hinter dem Typ des Parameters jeweils das &. Die dadurch erstellten Referenz-Variablen (a und b) bekommen die gleiche Speicheradresse wie die an die Funktion übergebenen Variablen x und y.

Alles, was jetzt mit a und b gemacht wird, passiert auch mit x bzw. y!

Bei Verwendung von Referenzen muss nicht

Dereferenziert (*) werden. Es kann direkt mit den Variablennamen gearbeitet werden.

Bei Aufruf der Funktion muss nicht mehr die Adresse

der Variablen übergeben werden, sondern einfach nur

der Funktionsname.

Referenzen

ÄHNLICHE DOKUMENTE

Sie werden dazu verwendet, eine Aktion auf alle Elemente eines Containers anzuwenden. – Algorithmen bestehen aus Routinen, die alle auf Containern

Dateien haben eine Reihe von Attributen (=systemseitig gespeicherte Eigenschaften), die sich der Benutzer auf Anforderung (durch das Kommando ls) ansehen

Die Schlüsselwörter werden im Klartext in einer Datei gespeichert und von einem Übersetzungsprogramm (Compiler) in Maschinensprache umge- wandelt.. • Wir benutzen als C++

friend class Freundklasse; //Freundklasse hat jetzt Zugriff //auf private-Elemente der Klasse testklasse private:...}.

Anmerkung: Man hätte die Liste gleich in richtiger Folge Man hätte die Liste gleich in richtiger Folge aufbauen oder nachträglich umordnen können. Dann wäre aufbauen

[r]

Rückgabetypen Name (Eingabetypen mit Parameternamen) {Body}..

- Arrays können als Parameter für Funktionen eingesetzt werden  Pointer - Rückgabewerte von Funktionen können indirekt Arrays sein  static - Dynamische Arraygröße