Repetitorium PG1 05.09. - 09.09.2005 5: Pointer FH-Darmstadt, FB Informatik.

Slides:



Advertisements
Ähnliche Präsentationen
Einführung in die Programmiersprache C/C++
Advertisements

der Universität Oldenburg
Objektorientierte Programmierung
Imperative Programmierung
der Universität Oldenburg
der Universität Oldenburg
DVG Einfache Klassen Einfache Klassen. DVG Einfache Klassen 2 Strukturen Beispiel: Personendaten bestehen aus –String name –String vorname.
der Universität Oldenburg
der Universität Oldenburg
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
Indirekte Adressierung
FH-Hof Indirekte Adressierung Richard Göbel. FH-Hof Einfache Speicherung von Daten Eine "einfache" Deklaration definiert direkt eine Speicherplatz für.
FH-Hof Verwaltung von Zeichenketten Richard Göbel.
Java: Referenzen und Zeichenketten
Java: Grundlagen der Objektorientierung
Strukturen. In einer Struktur kann eine beliebige Anzahl von Komponenten (Daten) mit unterschiedlichen Datentypen (im Gegensatz zu Feldern) zusammengefaßt.
Erweiterte Zuweisungskompatibilität
Objekte werden als Adressen (Referenzen) übergeben. Dies führt manchmal zu unerwarteten Ergebnissen...
Polymorphie (Vielgestaltigkeit)
Polymorphie (Vielgestaltigkeit)
Objekte und Arbeitsspeicher
Dynamischer Speicher. In einer Funktion wird z.B. mit der Deklaration int i; Speicher auf dem sogenannten Stack reserviert. Wenn die Funktion verlassen.
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 5 Claudio Moraga; Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
Programmieren mit JAVA
PRJ 2007/1 Stefan Dissmann Motivation Problem: gleiche Datenstrukturen werden für verschiedene Objekte gebraucht: z.B. Listen von Studierenden, Kunden,
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
Zusammenfassung Vorwoche
Abstrakter Datentyp in C++ I - Klasse -
Verkettete Liste Visualisierung. New-Operator Mit dem New-Operator kann zur Laufzeit (dynamisch) Speicherplatz reserviert und angelegt werden Vorteil:
DVG Einfache Klassen 1 Einfache Klassen. 2DVG Einfache KlassenStrukturen Beispiel: Personendaten bestehen aus String name String name.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
IT2 – WS 2005/20061Oct 10, 2005 Externes Verhalten – Quelltext (source code) Durch Aufrufe der Konstruktoren und Methoden kann das externe Verhalten (=die.
Repetitorium PG : Gültigkeit, Sichtbarkeit & Operatorüberladung FH-Darmstadt, FB Informatik.
Efficient Alias Set Analysis Using SSA Form Proseminar Programmanalyse WS 11/12 André Hunke.
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger Institut.
Dynamische Datentypen
Objektorientiertes Konstruieren
Variablenkonzept Klassisch, in Java Basistyp
Die Klasse String und ihre Methoden
Parameterübergabemechanismen für den Methodenaufruf
Informatik II Grundlagen der Programmierung Programmieren in C Benutzerinteraktion / Ein- und Ausgabe Hochschule Fulda – FB ET Sommersemester
Repetitorium PG : Erste Schritte FH-Darmstadt, FB Informatik.
5. Zeiger und komplexe Datenstrukturen
Repetitorium PG : Standard Template Library FH-Darmstadt, FB Informatik.
Polymorphie (Vielgestaltigkeit). Wenn eine Methode, wie z.B. print für verschiedene Programmteile steht (und z.B. einmal Objekte verschiedener Klassen.
early binding (frühe Bindung) late binding (späte Bindung)
A) Erklären Sie den Datentyp char. b) Erklären Sie den Datentyp Struct c) Erklären Sie die Wirkungsweise des Operators & bei Anwendung im Zusammenhang.
Einführung in die Programmierung mit Java
C Tutorium – Memory Management – Knut Stolze. 2 Agenda Einführung in die Speicherverwaltung Stack vs. Heap Malloc Free Sizeof Tipps/Hinweise.
Funktionen. Aufgabe : Eingabe zweier Zahlen ---> Minimum bestimmen Dann nochmals Eingabe zweier Zahlen ---> Minimum bestimmen.
Pointer. Precompiled Header  Vorübersetzung eingebundener Dateien häufig genutzt, selten geändert  Projekttyp „Win32 Console Application“
Tutorium Software-Engineering SS14 Florian Manghofer.
Tutorium Software-Engineering SS14 Florian Manghofer.
Pointer, Arrays und verkettete Listen. Mehrdimensionale Arrays  Pointer auf ein Array von Pointern  int32 **matrix = new int32*[3];  matrix: Zeiger.
C++ FÜR cOMPUTERSPIELENTWICKLER
Tutorium Software-Engineering SS14 Florian Manghofer.
Tutorium Software-Engineering SS14 Florian Manghofer.
Funktionen (Zweck und Eigenschaften) Funktionen sind Unterprogramme, die einen bestimmten Zweck erfüllen Sie zerlegen Probleme in kleine, abgeschlossene.
Strukturen (Eigenschaften) Strukturen dienen zur Zusammenfassung mehrerer Komponenten verschiedener Typen zu einer Einheit, die dann mit gemeinsamen Namen.
Pointer. * und &  Bei der Definition int var1; ○ // „normale“ Variable int *var2; ○ // Zeiger auf einen Integer int *var2 = NULL; ○ // … incl. Initialisierung.
Dynamischer Speicher malloc wird in c++ eher nicht mehr verwendet.
Programmieren in C Wie speichert C
Referenzen In c kennen wir gewöhnliche Variablen und Pointer.
Grundkurs Informatik 11-13
 Präsentation transkript:

Repetitorium PG : Pointer FH-Darmstadt, FB Informatik

Rep. PG1 – Kap. 5: PointerDipl. Inf. (FH) Michael Krauß2/10 Übersicht Pointer Operatoren this new

Rep. PG1 – Kap. 5: PointerDipl. Inf. (FH) Michael Krauß3/10 Zeigervariable (pointer) werden zur indirekten Adressierung benutzt werden in C++ so definiert: int IZahl = 5, IZahl1; int *ZeigerI; ZeigerI = &IZahl; int * ZeigerI1 = &IZahl1; enthalten Adressen eines Objekts anstelle des Objekts selbst

Rep. PG1 – Kap. 5: PointerDipl. Inf. (FH) Michael Krauß4/10 Zeigervariable (pointer) haben einen –Namen –Typ –Speicherplatz können den Wert des Objekts, auf das sie zeigen, lesen können den Wert des Objekts, auf das sie zeigen, ändern können zur Laufzeit neue Adressen zugewiesen bekommen, um auf andere Objekte zu zeigen

Rep. PG1 – Kap. 5: PointerDipl. Inf. (FH) Michael Krauß5/10 Pointer bekommen zur Compile-Zeit nur Speicher für eine Objektadresse, aber nicht den Speicher für das Objekt selbst zugewiesen. Sie werden vom C++ Compiler nicht initialisiert. u. U. nicht reproduzierbare Fehler Schadensbegrenzung double *ZeigerD = 0; double *ZeigerD(0); –`0´ zeigt an, dass sich ein Zeiger noch nicht oder nicht mehr auf ein definiertes Objekt zeigt. wenigstens reproduzierbare Abstürze guter Programmierstil

Rep. PG1 – Kap. 5: PointerDipl. Inf. (FH) Michael Krauß6/10 *,& und Operatoren Adreßoperator (&) und Dereferenzierungsoperator (*) sind zueinander invers Für Zeiger sind folgende Operatoren definiert ++, +, +=, [ ],, >=

Rep. PG1 – Kap. 5: PointerDipl. Inf. (FH) Michael Krauß7/10

Rep. PG1 – Kap. 5: PointerDipl. Inf. (FH) Michael Krauß8/10 Anwendung von Zeigern Call by reference –Ersatz für Referenzparameter in Parameterlisten von Funktionen/Methoden Indirektion –Zugriff auf Objekte und deren Memberfunktionen über Zeiger ist einSchlüsselkonzept von C++

Rep. PG1 – Kap. 5: PointerDipl. Inf. (FH) Michael Krauß9/10 Anwendung von Zeigern Kommandozeilenparameter –void main ( int argc, char *argv[ ]) {…} this-Zeiger in Klassen Zugriff auf dynamische Datenstrukturen mit Zeigern und new-Operator –Besser ist es, wenn man den Speicher erst zur Laufzeit, entsprechend dem tatsächlichen Bedarf anfordern (allokieren) kann. Aufruf von Memberfunktionen über -> Operator

Rep. PG1 – Kap. 5: PointerDipl. Inf. (FH) Michael Krauß10/10 new ? Mit dem new-Operator werden die Objekte nicht auf dem Stack angelegt, sondern auf dem Heap-Space! gewünscht