Kap. 11 Objektorientierung: ein Beispiel

Größe: px
Ab Seite anzeigen:

Download "Kap. 11 Objektorientierung: ein Beispiel"

Transkript

1 Kap. 11 Objektorientierung: ein Beispiel Dr. Norbert Spangler / Programmieren

2 Grundprinzip der Datentypen und Klassen Name des Typs Elementare Typen int bool Klasse Name (frei wählbar) Daten Variable(Array) ein Typ Eigenschaften unterschiedliche Typen Interne Abspeicherung System System durch Programmierer Verwendung Deklaration direkt int i; bool b; mit Initialisierung int i=1; bool b=true; int i(1); bool b(false); Methoden(Funktionen) Name x; Name x(werte der Eigensch.); -> Konstruktoren Wert ändern i=2; b=false; x.seteigenschaft(neuer Wert); Wert verwenden j=i; c=b; j = x.geteigenschaft(); Wertw anzeigen cout<<i; cout<<b; x.display(); Rechnen i % j b && ( i<1 ) x.calculate(y) Dr. Norbert Spangler / Programmieren

3 Grundprinzip der Datentypen und Klassen Name des Typs Elementare Typen int bool Klasse Name (frei wählbar) Daten eine Variable/Array (ein Typ) unterschiedliche Eigenschaften (unterschiedliche Typen) Interne Abspeicherung System System durch Programmierer Verwendung Deklaration direkt int i; bool b; mit Initialisierung int i=1; bool b=true; int i(1); bool b(false); Methoden(Funktionen) Name x; Name x(werte der Eigensch.); -> Konstruktoren Wert ändern i=2; b=false; x.seteigenschaft(neuer Wert); Wert verwenden j=i; c=b; j = x.geteigenschaft(); Wert anzeigen cout<<i; cout<<b; x.display(); Rechnen i % j b && ( i<1 ) x.calculate(y) Dr. Norbert Spangler / Programmieren

4 Eine Klasse ist ein verallgemeinerter benutzerdefinierter Datentyp. Er wird beschrieben durch 11.1 Konzept einer Klasse die Menge seiner Daten (Eigenschaften, Attribute), deren interne Abspeicherung dem Nutzer i.a. verborgen (private, nicht sichtbar) bleibt und die Menge seiner i.a. öffentlichen (public, sichtbar) Funktionen (Methoden), welche den Umgang mit den Daten ermöglichen. Mittels besonderer Methoden (Konstruktoren) werden Variable oder Konstante (Objekte) vom Typ der Klasse deklariert und ggf. mit Anfangswerteninitialisiert. Methodenaufrufe ersetzen/ergänzen den Befehlsvorrat/die Rechenoperationen. Funktionen können wie bisher eingesetzt werden. Parameter oder der Wert der Funktion können jetzt auch vom Typ einer Klasse sein. Dr. Norbert Spangler / Programmieren

5 Erstes Beispiel einer Klasse: Punkt Ein Punkt in der Ebene wird beschrieben durch 2 Koordinaten x undy, üblicherweise vom Typ double. Erforderliche Eigenschaften (Daten) x und y vom Typ double (z.b. noch Bezeichnung vom Typ char) Erforderliche Methoden (Funktionen) Deklaration mit/ohne Initialisierung Problem: was wird x und was wird y Koordinaten auf andere Werte setzen mit den Koordinaten arbeiten am Bildschirm anzeigen Punkt am Ursprung spiegeln-> ändert Eigenschaften zwei Punkte addieren -> neuer Punkt Dr. Norbert Spangler / Programmieren

6 class Punkt private: ; public: 11.2 Definition der Klasse double x; //x-koordinate double y; //y- Koordinate //char name; //eventuell- hier ohne //Deklaration ohneanfangswerte //Deklaration mitanfangswerten //am Bildschirm anzeigen //Koordinate x setzen //Koordinate y setzen //Wert der Koordinate x verwenden //Wert der Koordinate y verwenden //Punkt spiegeln (aendern) //2 Punkte addieren (neuer Punkt) Name verborgen Eigenschaften öffentlich Methoden Dr. Norbert Spangler / Programmieren Semikolon- wichtig!!!

7 Headerdatei Die Klassendefinition wird üblicherweise in einer Headerdatei gespeichert. Projekt/neues Element hinzufuegen/headerdatei(.h) punkt.h / Allgemein: Klassenname.h In der Headerdatei ist also die Klassendefinition. Damit sind alle wesentlichen Informationen über die Klasse verfügbar. Sie kann damit verwendet werden: Name der Klasse Angabe der Eigenschaften (Name und Typ) Angabe der Methoden (Funktionsprototypen). Dr. Norbert Spangler / Programmieren

8 Methodendatei Die Methoden sind Funktionen, die zur Klasse gehören. Sie werden üblicherweise in einer separaten cpp-datei gespeichert. Projekt/neues Element hinzufuegen/c++datei(.cpp) punkt.cpp / Allgemein üblich: Klassenname.cpp Dr. Norbert Spangler / Programmieren

9 Probleme Wie wird in der Methodendatei die Information über die Klasse bereitgestellt? In der Methodendatei wird die Klassendefinition benötigt. Dies geschieht mittels der Direktive #include "punkt.h". Wie wird in der Methodendatei eine Funktion(Methode) einer Klasse zugeordnet? (z.b. eine Funktion display() ) Bei der Definition wird zum Funktionsnamen der Klassenname mittels des Bereichsoperators (::) hinzugefügt Klassenname void Punkt::display() Bereichsoperator Methodenname Allgemein: typderfunktion Klassenname::namederfunktion(Parameter) Dr. Norbert Spangler / Programmieren

10 Anwendungsprogramm Das Anwendungsprogramm wird üblicherweise in einer separaten cpp-datei gespeichert mit den Namen main.cpp Projekt/neues Element hinzufuegen/c++datei(.cpp) Die Klassendefinition wird wie in der Methodendatei bereitgestellt #include punkt.h Dr. Norbert Spangler / Programmieren

11 Vorgehensweise zur Klassenerzeugung Bei der Entwicklung einer Klasse kann man beispielsweise wie folgt vorgehen: Man plant und definiert die Eigenschaften und Methoden. Man codiert die Eigenschaften. Man codiert eine/einige/wenige Methoden und testet diese. Man nimmt eine/einige/wenige Methoden dazu und testet diese. usw. Mögliche Reihenfolgen: 1.Konstruktoren + Anzeigemethoden 2.Werte ändern/bereitstellen 3. Dr. Norbert Spangler / Programmieren

12 Problem 11.3 Verwendung von Eigenschaften und Methoden Wenn man mehrere Objekte hat Punkt a,b,c; Dann hat jeder Punkt Eigenschaften x und y. Darüberhinaus gibt es Methoden m1, m2, m3 etc. der Klasse. Wie wird festgelegt Zu welchem Objekt gehört ein x bzw. y Mit welchen Daten (x,y) werden die Methoden m1,m2,m3 etc. aufgerufen Lösung: Verwendung des Punktoperators a.x bzw. a.y a.m1() Allgemein (*) Hinweis bezeichnen die Eigenschaften x und y des Objekts a etc. (*) ruft die Methode m1 mit den Daten des Objekts a auf etc. Objektname.eigenschaftsname Objektname.methodenname(Parameterliste) Diese Art des Zugriffs mit dem Punktoperator ist nur erlaubt: - innerhalb der Methoden einer Klasse - für public-elemente der Klasse (üblicherweise nur Methoden). Da aber Eigenschaften in der Regel private sind, ist die Schreibweise a.x bzw. a.y dann nicht erlaubt. In diesem Fall müssen entsprechende get/set Methoden verwendet werden. Dr. Norbert Spangler / Programmieren

13 11.4 Konstruktoren Konstruktoren sind spezielle Methoden, welche zur Deklaration inkl. Ininitalisierung verwendet werden. Der Name dieser Methoden ist der Klassenname. Sie unterscheiden sich in den Parametern für dieanfangswerte. Es gibt einen Konstruktor ohne Parameter: Default- oder Standardkonstruktor. Es kann mehrere Konstruktoren geben mit unterschiedlicher Signatur. Ein Konstruktor hat keinen Funktionstyp Dr. Norbert Spangler / Programmieren

14 Klassenname Defaultkonstruktor Punkt Methodenname Aufruf: Punkt::Punkt() x=0.0; y=0.0; Diese Funktion hat keinen Typ!!! Keine Parameter Punkt p; Es wird ein Objekt vom Typ Punkt mit dem Namen p deklariert ohne Anfangswerte vorzugeben. Programmcode, um die Eigenschaften mit Anfangswerten zu belegen. Mit x bzw. y sind dann die Eigenschaften des in der Deklaration genannten Objekts (hier p) gemeint. Objekte sind Instanzen ("Variable") vom Typ der Klasse Dr. Norbert Spangler / Programmieren

15 Konstruktor Punkt Punkt::Punkt(double px,double py) x=px; y=py; 1. Parameter->x 2. Parameter->y Aufruf: Punkt q(2.0,3.0); Es wird ein Objekt vom Typ Punkt mit dem Namen q deklariert. x wird mit 2.0 y mit 3.0 vorbelegt. Dr. Norbert Spangler / Programmieren

16 Headerdatei In der Headerdatei sind die Methoden als Funktionsprototypen aufzuführen. Die Namen der Parameter sind nicht erforderlich. class Punkt private: double x; double y; public: Punkt(); Punkt(double,double); //weitere Methoden ; Dr. Norbert Spangler / Programmieren

17 Methodendatei In der Methodendatei steht der Programmcode der Methoden. #include "punkt.h" #include <iostream> using namespace std; Punkt::Punkt() x=0.0; y=0.0; Punkt::Punkt(double px,double py) x=px; y=py; Verbindung zur Klasse Alles was sonst benötigt wird ist zu inkludieren. Dr. Norbert Spangler / Programmieren

18 Anwendungsprogramm #include "punkt.h" #include <iostream> using namespace std; void main() Punkt p; Punkt q(2.0,3.0); Verbindung zur Klasse Deklaration eines Objekts p mit Defaultkonstruktor Deklaration eines Objekts q mit Konstruktor #include <iostream> using namespace std; void main() int i; int j=1; Vergleichbares bisheriges Programm. In beiden Programmen sieht man nichts. ->Notwendigkeit für Ein- undausgaben. Dr. Norbert Spangler / Programmieren

19 11.5 Methode display Headerdatei class Punkt private: double x; double y; public: Punkt(); Punkt(double,double); void display(); //weitere Methoden ; Methodendatei #include "punkt.h" #include <iostream> using namespace std; void Punkt::display() cout<<"punkt"<<endl; cout<<" x "<<x<<endl; cout<<" y "<<y<<endl; Dr. Norbert Spangler / Programmieren

20 Anwendungsprogramm #include "punkt.h" #include <iostream> using namespace std; void main() Punkt p; Punkt q(2.0,3.0); p.display(); q.display(); Aufruf der Methode display mit den Objekten p und q. Dr. Norbert Spangler / Programmieren

21 Anwendungsprogramm/Debug Lässt man das Programm unter Debug laufen, können Objekte mit den aktuellen Werten der Eigenschaften angesehen werden. Dr. Norbert Spangler / Programmieren

22 Headerdatei class Punkt private: double x; double y; public: Punkt(); Punkt(double,double); void display(); void setx(double); void sety(double); //weitere Methoden ; 11.6 Methode Werte ändern Methodendatei void Punkt::setX(double px) x=px; void Punkt::setY(double py) y=py; Typ der Eigenschaft Übliche set-methode: Die Methode ist vom Typ void und hat einen Parameter vom Typ der Eigenschaft. Dr. Norbert Spangler / Programmieren

23 Methode Werte ändern Für welche Eigenschaften benötigt man set-methoden? Wenn sich einzelne Eigenschaften innerhalb einer Anwendung ändernkönnen. Beispiel: Klasse Student Eigenschaften: Matrikelnummer Name Wohnort etc. Name Wohnort kann sich ändern -> set hilfreich Matrikelnummer nicht -> kein set benötigt aber entsprechende Konstruktoren Ein Defaultkonstruktor für Student macht damit i.a. keinen Sinn. Dr. Norbert Spangler / Programmieren

24 #include "punkt.h" #include <iostream> using namespace std; void main() Punkt p; Punkt q(2.0,3.0); p.display(); q.display(); p.setx(2.3); p.sety(-1.5); p.display(); Anwendungsprogramm Die Eigenschaften des Objekts p wurden geändert. Dr. Norbert Spangler / Programmieren

25 #include "punkt.h" #include <iostream> using namespace std; void main() Punkt p; Punkt q(2.0,3.0); p.display(); q.display(); p.setx(2.3); p.sety(-1.5); p.display(); p.x=1.1; Anwendungsprogramm/Fehlerhafter Zugriff Erstellen gestartet: Projekt: test, Konfiguration: Debug Win Kompilieren... main.cpp c:\test\main.cpp(77) : error C2248: "Punkt::x": Kein Zugriff auf private Member, dessen Deklaration in der Punkt-Klasse erfolgte. c:\test\main.cpp(8): Siehe Deklaration von 'Punkt::x' c:\test\main.cpp(6): Siehe Deklaration von 'Punkt' Das Buildprotokoll wurde unter "file://c:\test\debug\buildlog.htm" gespeichert. test - 1 Fehler, 0 Warnung(en) Versuchter Direktzugriff auf eine Eigenschaft von ausserhalb der Klasse Dr. Norbert Spangler / Programmieren

26 11.7 Methode Wert verwenden Headerdatei Methodendatei class Punkt private: double x; double y; public: Punkt(); Punkt(double,double); void display(); void setx(double); void sety(double); double getx(); double gety(); //weitere Methoden ; double Punkt::getX() return x; double Punkt::getY() return y; Übliche get-methode: Die Methode ist vom Typ der Eigenschaft und hat keine Parameter. Dr. Norbert Spangler / Programmieren

27 Methode Werte verwenden Für welche Eigenschaften benötigt man get-methoden? Wenn einzelne Eigenschaften innerhalb einer Anwendung zur weiteren Verwendung bereitgestellt werden müssen. Beispiel: Klasse Student Eigenschaften: Matrikelnummer Name Wohnort etc. Ein spezieller Student soll in einer Liste von Studenten gesucht werden: getmatrikelnummer bzw. getname je nach Suchkriterium sind erforderlich. Dr. Norbert Spangler / Programmieren

28 Anwendungsprogramm #include "punkt.h" #include <iostream> using namespace std; void main() Punkt p; Punkt q(2.0,3.0); p.display(); q.display(); p.setx(2.3); p.sety(-1.5); p.display(); double h=q.getx(); cout<<" Punkt q "<<h<< " " <<q.gety()<<endl; Analog zu set ist hier auch cout<<q.y; nicht erlaubt. Die Eigenschaften von q werden verwendet. Dr. Norbert Spangler / Programmieren

29 11.8 Methoden zur Manipulation von Punkten Aufgabe 1: Ein Punkt soll am Ursprung gespiegelt werden -> Eigenschaften des Punktes werden geändert Aufgabe 2: Zwei Punkte sollen addiert werden; das Ergebnis ist ein neuer Punkt -> Eigenschaften der beiden Punkte ändern sich nicht void Punkt::spiegeln() // am Ursprung spiegeln x=-x; y=-y; Funktionswert Punkt Punkt::addieren(Punkt q) //Addition von q zum aktuellen Punkt Punkt h; Lokale h.x=x+q.x; Variable h.y=y+q.y; return h; Innerhalb der Methoden einer Klasse erlaubt. Alternative: h.setx(x+q.getx()) h.sety(y+q.gety()) Dr. Norbert Spangler / Programmieren

30 Anwendungsprogramm void main() Punkt p; Punkt q(2.0,3.0); p.display(); q.display(); Wieso funktioniert der p.setx(2.3); Zuweisungsoperator? p.sety(-1.5); p.display(); double h=q.getx(); cout<<h<< " " <<q.gety()<<endl; q.spiegeln(); q.display(); Punkt neu=p.addieren(q); // Punkt neu=p+q; waere schoener neu.display(); p q p nach set get mit q Spiegeln von q Addieren von p und q Dr. Norbert Spangler / Programmieren

31 Headerdatei class Punkt private: double x; double y; public: Punkt(); Punkt(double,double); void display(); void setx(double); void sety(double); double getx(); double gety(); Punkt addieren(punkt); void spiegeln(); ; Dr. Norbert Spangler / Programmieren

32 #include "punkt.h" #include <iostream> using namespace std; Punkt::Punkt() x=0.0; y=0.0; Punkt::Punkt(double px,double py) x=px; y=py; void Punkt::display() cout<<"punkt"<<endl; cout<<" x "<<x<<endl; cout<<" y "<<y<<endl; void Punkt::setX(doublepx) x=px; Methodendatei mit 9 Methoden void Punkt::setY(doublepy) y=py; double Punkt::getX() return x; double Punkt::getY() return y; Punkt Punkt::addieren(Punkt q) //Addition von q zum aktuellen Punkt Punkt h; h.x=x+q.x; h.y=y+q.y; return h; void Punkt::spiegeln() // am Ursprung spiegeln x=-x; y=-y; Dr. Norbert Spangler / Programmieren

33 11.9 Zusammenfassung Zur Definition einer Klasse benötigt man Die Angabe aller Eigenschaften Die Programmierung der erforderlichen Methoden - Konstruktoren zur Deklaration und Initialisierung - set-methoden um Eigenschaften zu ändern - get-methoden um Eigenschaften bereitzustellen - Methoden zur Anzeige voneigenschaften/werten - weitere aufgabenspezifische Methoden wie hier addieren, spiegeln, Dr. Norbert Spangler / Programmieren

C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren

C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen Leibniz Universität IT Services Anja Aue

Mehr

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung)

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) Wintersemester 2005/06 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich Informatik Lehrstuhl

Mehr

Aufbau von Klassen. class punkt {...

Aufbau von Klassen. class punkt {... Einführung in C++ Aufbau von Klassen Eine wird mit dem Schlüsselwort class eingeleitet, und endet mit einem Semikolon. Der Inhalt wird zwischen geschweiften Klammern geschrieben. class punkt {... ; Im

Mehr

7. Übung Informatik II - Objektorientierte Programmierung

7. Übung Informatik II - Objektorientierte Programmierung 7. Übung Informatik II - Objektorientierte Programmierung 29. Mai 2015 Inhalt 1 2 3 Übersicht 1 2 3 Idee Menschen nehmen die Welt in Form von Objekten wahr manche Objekte haben gleiche Eigenschaften, hierüber

Mehr

C++ - Einführung in die Programmiersprache Header-Dateien und Funktionen. Leibniz Universität IT Services Anja Aue

C++ - Einführung in die Programmiersprache Header-Dateien und Funktionen. Leibniz Universität IT Services Anja Aue C++ - Einführung in die Programmiersprache Header-Dateien und Funktionen Leibniz Universität IT Services Anja Aue Modularisierung Logische Gliederung von Programmteilen mit Hilfe von Namensräumen. Aufteilung

Mehr

Programmieren II Klassen. Programmieren II Klassen. Programmieren II Klassen. Programmieren II Klassen. Zur Erinnerung.

Programmieren II Klassen. Programmieren II Klassen. Programmieren II Klassen. Programmieren II Klassen. Zur Erinnerung. Vorbemerkungen Zur Erinnerung aktueller Standpunkt: Entwickler von (bibliotheken) jetzt sind wichtig interne Repräsentation der Daten Realisierung der gewünschten Funktionalität Bereitstellung geeigneter

Mehr

9. Vektoren. (auch Felder/array)

9. Vektoren. (auch Felder/array) 9. Vektoren (auch Felder/array) Motivation Hat man mehrere Objekte gleichen Datentyps, so kann man sie explizit deklarieren, wenn die Anzahl bekannt ist double x1,x2,x3,x4; Nachteile: versagt, -wenn die

Mehr

Einführung in die Programmierung

Einführung in die Programmierung : Klassen Inhalt 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 Konstruktoren / Destruktoren

Mehr

Vorkurs C++ Programmierung

Vorkurs C++ Programmierung Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:

Mehr

C++ Teil 12. Sven Groß. 18. Jan Sven Groß (IGPM, RWTH Aachen) C++ Teil Jan / 11

C++ Teil 12. Sven Groß. 18. Jan Sven Groß (IGPM, RWTH Aachen) C++ Teil Jan / 11 C++ Teil 12 Sven Groß 18. Jan 2016 Sven Groß (IGPM, RWTH Aachen) C++ Teil 12 18. Jan 2016 1 / 11 Themen der letzten Vorlesung Wiederholung aller bisherigen Themen: Datentypen und Variablen Operatoren Kontrollstrukturen

Mehr

Methoden. von Objekten definiert werden, Methoden,, Zugriffsmethoden und Read-Only

Methoden. von Objekten definiert werden, Methoden,, Zugriffsmethoden und Read-Only Methoden Wie Konstruktoren und Destruktoren zum Auf- und Abbau von Objekten definiert werden, Wie inline-methoden Methoden,, Zugriffsmethoden und Read-Only Only- Methoden einzusetzen sind, Der this-pointer

Mehr

Programmieren in C/C++ und MATLAB

Programmieren in C/C++ und MATLAB Programmieren in C/C++ und MATLAB Christian-Albrechts-Universität zu Kiel CAU 8-1 Objektorientiertes Programmieren Die Programme, die bisher in diesem Kurs verwendet wurden, sind alle klein und überschaubar

Mehr

Java Einführung Methoden in Klassen

Java Einführung Methoden in Klassen Java Einführung Methoden in Klassen Lehrziel der Einheit Methoden Signatur (=Deklaration) einer Methode Zugriff/Sichtbarkeit Rückgabewerte Parameter Aufruf von Methoden (Nachrichten) Information Hiding

Mehr

DAP2-Programmierpraktikum Einführung in C++ (Teil 2)

DAP2-Programmierpraktikum Einführung in C++ (Teil 2) DAP2-Programmierpraktikum Einführung in C++ (Teil 2) Carsten Gutwenger 18. April 2008 Lehrstuhl 11 Algorithm Engineering Fakultät für Informatik, TU Dortmund Überblick Dynamischer Speicher Klassen und

Mehr

8. Referenzen und Zeiger

8. Referenzen und Zeiger 8. Referenzen und Zeiger Motivation Variable werden in C++ an speziellen Positionen im Speicher abgelegt. An jeder Position befindet sich 1 Byte. Sie sind durchnummeriert beginnend bei 0. Diese Positionen

Mehr

FB Informatik. Fehler. Testplan

FB Informatik. Fehler. Testplan Fehler #include int i,n,summe; int summe (int); cout 0) cin>n; i=summme(n); cout

Mehr

Klausur Programmieren 2 SS 2016

Klausur Programmieren 2 SS 2016 Klausur Programmieren 2 SS 2016 Name Gruppe 1 Vorname Dauer 90 min Matrikelnummer Hilfsmittel keine Die Klausur ist mit 50 Punkten sicher bestanden. Hinweise: Formulieren Sie Ihre Lösungen auf dem Aufgabenblatt

Mehr

01. Grundprinzipien der Vererbung

01. Grundprinzipien der Vererbung 01. Grundprinzipien der Vererbung 1.1 Grundidee der Vererbung Bei der Analyse eines Problems (z.b. Baukasten) stellt man beispielsweise fest, dass 67 % an Daten/Funktionen immer vorkommen 25 % an Daten/Funktionen

Mehr

Klausur Informatik I WS 2006/2007

Klausur Informatik I WS 2006/2007 Klausur Informatik I WS 2006/2007 Name Gruppe 1 Vorname Dauer 90 min Matrikelnummer Hilfsmittel keine Hinweis: sofern Sie die Rückseite eines Blattes verwenden vermerken sie dies auf der Vorderseite Nr.

Mehr

Hydroinformatik I: Klassen

Hydroinformatik I: Klassen Hydroinformatik I: Klassen Prof. Dr.-Ing. habil. Olaf Kolditz 1 Helmholtz Centre for Environmental Research UFZ, Leipzig 2 Technische Universität Dresden TUD, Dresden Dresden, 11. November 2016 1/20 Prof.

Mehr

Programmieren II Abstrakte Klassen / Virtuelle Methoden. Programmieren II Abstrakte Klassen / Virtuelle Methoden

Programmieren II Abstrakte Klassen / Virtuelle Methoden. Programmieren II Abstrakte Klassen / Virtuelle Methoden Einleitende Bemerkungen Einleitende Bemerkungen Aspekte Aufbau von sinnvollen Klassenhierarchien Verwaltung von Objekten unterschiedlichen Typs Mitarbeiter Besonderheiten der Anwendung jeder Angehörige

Mehr

Prof. W. Henrich Seite 1

Prof. W. Henrich Seite 1 Klasse - ist ein benutzerdefinierter Datentyp (Referenztyp) - hat Datenelemente - hat Methoden - Konstruktor ist spezielle Methode zum Erstellen eines Objektes vom Typ der Klasse (Instanz) - jede Klasse

Mehr

Objektorientierung: Klassen und Objekte

Objektorientierung: Klassen und Objekte Objektorientierung: Klassen und Objekte Klasse: Beschreibung für eine Menge von Objekten Schablone, Bauplan abstrakte Form Objekt: Instanz einer Klasse konkreter Inhalt (Werte) Klassen bestehen aus Attributen

Mehr

C++ - Objektorientierte Programmierung Konstante und statische Elemente

C++ - Objektorientierte Programmierung Konstante und statische Elemente C++ - Objektorientierte Programmierung Konstante und statische Elemente hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen Leibniz Universität IT Services Anja

Mehr

15. Die Klasse string

15. Die Klasse string 15. Die Klasse string Notwendige Funktionen Erzeugen Zuweisen, Anhängen,Einfügen Löschen, Entfernen, Ersetzen Ermitteln der Größe indizierter Zugriff auf Zeichen Vergleich Suchen von Zeichen und Teil-Strings

Mehr

Implementieren von Klassen

Implementieren von Klassen Implementieren von Klassen Felder, Methoden, Konstanten Dr. Beatrice Amrhein Überblick Felder/Mitglieder (Field, Member, Member-Variable) o Modifizierer Konstanten Methoden o Modifizierer 2 Felder und

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 34 Einstieg in die Informatik mit Java Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 34 1 Definition von Klassen 2 Methoden 3 Methoden

Mehr

Hydroinformatik I: Klassen

Hydroinformatik I: Klassen Hydroinformatik I: Klassen Prof. Dr.-Ing. habil. Olaf Kolditz 1 Helmholtz Centre for Environmental Research UFZ, Leipzig 2 Technische Universität Dresden TUD, Dresden Dresden, 27. November 2015 1/13 Prof.

Mehr

Repetitorium Informatik (Java)

Repetitorium Informatik (Java) Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen

Mehr

Grundkurs C++ IDE Klassenhierarchien

Grundkurs C++ IDE Klassenhierarchien Grundkurs C++ IDE Klassenhierarchien Martin Knopp & Johannes Feldmaier 20.04.2016 Folie 1/35 GK C++: IDE, Klassenhierarchien Martin Knopp & Johannes Feldmaier 20.04.2016 IDE Integrated Development Environment

Mehr

Grundkurs C++ IDE Klassenhierarchien

Grundkurs C++ IDE Klassenhierarchien Grundkurs C++ IDE Klassenhierarchien Martin Knopp 03.05.2017 Folie 1/34 GK C++: IDE, Klassenhierarchien Martin Knopp 03.05.2017 IDE Integrated Development Environment Wir empfehlen: Qt Creator (Bestandteil

Mehr

Konzepte der Programmiersprachen

Konzepte der Programmiersprachen Konzepte der Programmiersprachen Sommersemester 2010 4. Übungsblatt Besprechung am 9. Juli 2010 http://www.iste.uni-stuttgart.de/ps/lehre/ss2010/v_konzepte/ Aufgabe 4.1: Klassen in C ++ Das folgende C

Mehr

Verwendung von Klassen in C++

Verwendung von Klassen in C++ Verwendung von Klassen in C++ Heute: Benutzerdefinierte Datentypen (Konkrete Klassen) Vektoren Komplexe Zahlen Adressdatei Morgen: Objektorientierte Programmierung (Abstrakte Klassen) Vererbung Polymorphie

Mehr

Universität Paderborn Prof. Dr. Heike Wehrheim. Betreutes Arbeiten. Ab diese Woche: freitags, 14 16, E-Pool (während Tutorium Knopf) GPI, WS 07/08

Universität Paderborn Prof. Dr. Heike Wehrheim. Betreutes Arbeiten. Ab diese Woche: freitags, 14 16, E-Pool (während Tutorium Knopf) GPI, WS 07/08 Betreutes Arbeiten Ab diese Woche: freitags, 14 16, E-Pool (während Tutorium Knopf) 375 Wiederholung Klasse: class Klassenname { konzeptuelle Einheit der Modellierungsdomäne kapselt Daten und Operationen

Mehr

Programmierkurs C++ Kapitel 6 Module Seite 1

Programmierkurs C++ Kapitel 6 Module Seite 1 Programmierkurs C++ Kapitel 6 Module Seite 1 (Quell-)Module Unter einem Modul versteht man einen Teil des Programms, der eigenständig übersetzt werden kann. In der Syntax der Programmiersprachen werden

Mehr

OOP und Angewandte Mathematik (Praktikum 1) Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik

OOP und Angewandte Mathematik (Praktikum 1) Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik (Praktikum 1) Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik WS 2011/12 Inhalt Klassen in C++ Beispiele, mit Aufzeigen der Trennung von Spezifikation und Implementierung

Mehr

Objektorientierte Programmierung mit C++ SS 2007

Objektorientierte Programmierung mit C++ SS 2007 Objektorientierte Programmierung mit C++ SS 2007 Andreas F. Borchert Universität Ulm 5. Juni 2007 Polymorphismus #include Function.h class Function { public: virtual ~Function() {}; virtual std::string

Mehr

Klausur Programmieren 1 SS 2017

Klausur Programmieren 1 SS 2017 Klausur Programmieren 1 SS 2017 Name Gruppe 1 Vorname Dauer 90 min Matrikelnummer Hilfsmittel keine Die Klausur ist mit 50 Punkten sicher bestanden. Hinweies: Voraussetzung für die Teilnahme ist das Bestehen

Mehr

3. Exkurs in weitere Arten der Programmierung

3. Exkurs in weitere Arten der Programmierung 3. Exkurs in weitere Arten der Programmierung Inhalt: Objektorientierte Programmierung in C++ Logische Programmierung in Prolog Peter Sobe Objektorientierte Programmierung in C++ C++ ist eine objektorientierte

Mehr

Polymorphismus 179. Function.h. #include <string>

Polymorphismus 179. Function.h. #include <string> Polymorphismus 179 #include Function.h class Function { public: virtual ~Function() {}; virtual std::string get_name() const = 0; virtual double execute(double x) const = 0; }; // class Function

Mehr

SimpleStat mit Methoden

SimpleStat mit Methoden SimpleStat mit Methoden Als Ausgangspunkt nehmen wir folgende Definition (Version 1) von SimpleStat: double sum2; -Quadrate Dieser Objekttyp verfügt über keine Methoden und alle Datenattribute sind public.

Mehr

Kap 9. Bitoperationen und -strukturen

Kap 9. Bitoperationen und -strukturen Kap 9. Bitoperationen und -strukturen 9.1 Anwendung von Bits Im Gegensatz zu den üblicherweise Byte-orientierten Daten gibt es auch Bit-Anwendungsbeispiele Statusanzeigen bei Ein-/Ausgabe (Stream-Klassen)

Mehr

Klassen. Kapitel Klassendeklaration

Klassen. Kapitel Klassendeklaration Kapitel 4 Klassen Wir kommen nun zu einem sehr wichtigen Aspekt der OOT: zu den Klassen. Eine Klasse ist eine vom Benutzer definierte Datenstruktur, eine Sammlung von Variablen (unterschiedlichen Typs)

Mehr

3 Objektorientierte Konzepte in Java

3 Objektorientierte Konzepte in Java 3 Objektorientierte Konzepte in Java 3.1 Klassendeklarationen Fragen an die Klassendeklaration: Wie heißt die Klasse? Wer darf auf die Klasse und ihre Attribute/Methoden zugreifen? Ist die Klasse eine

Mehr

Vererbung I. Kfz Eigenschaften und Methoden der Klasse Kfz Lkw. Pkw. Eigenschaften und Methoden der Klasse Kfz

Vererbung I. Kfz Eigenschaften und Methoden der Klasse Kfz Lkw. Pkw. Eigenschaften und Methoden der Klasse Kfz Einführung in C++ Vererbung I Durch Vererbung können aus bereits bestehenden Klassen neue Klassen konstruiert werden. Die neue abgeleitete Klasse erbt dabei die Daten und Methoden der sog. Basisklasse.

Mehr

Kapitel 9: Klassen und höhere Datentypen. Klassen und höhere. Objekte, Felder, Methoden. Küchlin/Weber: Einführung in die Informatik

Kapitel 9: Klassen und höhere Datentypen. Klassen und höhere. Objekte, Felder, Methoden. Küchlin/Weber: Einführung in die Informatik Klassen und höhere Datentypen Objekte, Felder, Methoden Küchlin/Weber: Einführung in die Informatik Klassen Klasse (class) stellt einen (i.a. benutzerdefinierten) Verbund-Datentyp dar Objekte sind Instanzen

Mehr

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 12

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf  Seite 1 von 12 Kapitel 18 Konstruktor / Destruktor einer Klasse Seite 1 von 12 Konstruktoren - Zur Initialisierung der Eigenschaften einer Klasse werden Konstruktoren verwendet. - Der Konstruktor wird bei der Definition

Mehr

C++ - Objektorientierte Programmierung Vererbung

C++ - Objektorientierte Programmierung Vererbung C++ - Objektorientierte Programmierung Vererbung Personen Kunden Mitarbeiter Verwaltung Verkäufer Leibniz Universität IT Services Anja Aue Vererbung Definition von Klassen auf Basis von bestehenden Klassen.

Mehr

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 29

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf  Seite 1 von 29 Kapitel 2 Einführung in C++ Seite 1 von 29 C++ Zeichensatz - Buchstaben: a bis z und A bis Z. - Ziffern: 0 bis 9 - Sonderzeichen: ; :,. # + - * / % _ \! < > & ^ ~ ( ) { } [ ]? Seite 2 von 29 Höhere Elemente

Mehr

Objektorientierte Programmierung Studiengang Medieninformatik

Objektorientierte Programmierung Studiengang Medieninformatik Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 5 12.04.2017 Was bisher geschah... Objektorientierte Programmierung Klassen und Objekte, Attribute

Mehr

Klassen. C++ Übung am 02. Juni 2016

Klassen. C++ Übung am 02. Juni 2016 Klassen C++ Übung am 02. Juni 2016 Klassen - der Kern objektorientierter Programmierung - Festlegung der Daten und Funktionen einer Klasse - Deklaration als public oder private - Konstruktoren erzeugen

Mehr

C++ Klassen weitere Funktionen

C++ Klassen weitere Funktionen C++ Klassen weitere Funktionen Übersicht static Elemente const Elemente Zusätzliches zu Konstruktoren Kopier-Konstruktor Konvertierung-Konstruktor Initialisierungslisten Friend Funktionen 2 Statische Klassenkomponenten

Mehr

Kap 09. Funktionen/Ergänzungen

Kap 09. Funktionen/Ergänzungen Kap 09. Funktionen/Ergänzungen 9.1 Inline-Funktionen Der Mechanismus der Parameterübergabe hat einen "hohen" organisatorischen Aufwand z.b. durch kopieren der Parameteretc. Ist die Funktion vergleichsweise

Mehr

Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen

Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen Kapitel 9 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Attribute von Klassen, Methoden und Variablen Interfaces WS 07/08 1/ 18 2/ 18

Mehr

Letztes Mal. static int ggt(int a, int b) { if (a == b) return a; else if (a > b) return ggt(a-b,b); else if (a < b) return ggt(a,b-a);

Letztes Mal. static int ggt(int a, int b) { if (a == b) return a; else if (a > b) return ggt(a-b,b); else if (a < b) return ggt(a,b-a); Letztes Mal static int ggt(int a, int b) { if (a == b) return a; else if (a > b) } return ggt(a-b,b); else if (a < b) return ggt(a,b-a); Darf hier nicht stehen! Compiler sagt: Missing return statement

Mehr

Klausur Informatik WS 2012/13

Klausur Informatik WS 2012/13 Klausur Informatik WS 2012/13 Name Gruppe 1 Vorname Dauer 90 min Matrikelnummer Hilfsmittel keine Die Klausur ist mit 50 Punkten sicher bestanden. Hinweies: Voraussetzung für die Teilnahme ist das Bestehen

Mehr

Rückblick: Benutzerdefinierte Datentypen Definition der Klasse Vektor als Container für 2-dimensionale Vektoren

Rückblick: Benutzerdefinierte Datentypen Definition der Klasse Vektor als Container für 2-dimensionale Vektoren Rückblick: Benutzerdefinierte Datentypen Definition der Klasse Vektor als Container für 2-dimensionale Vektoren class Vektor public: double k1, k2; // Deklaration der Klasse Vektor // Elementvariablen

Mehr

Vokabeln. 4.1 Benutzer definierte Datentypen. Kapitel 4. Prof. Dr. Gerhard Berendt C++ oop? SS 2002 Arbeitsblatt 4

Vokabeln. 4.1 Benutzer definierte Datentypen. Kapitel 4. Prof. Dr. Gerhard Berendt C++ oop? SS 2002 Arbeitsblatt 4 4.1 Benutzer definierte Datentypen C++ unterstützt die Einführung benutzer definierter Datentypen (auch Abstrakte Datentypen (ADT) genannt). ADTs bieten einen guten Einstieg in das Paradigma der objekt

Mehr

Tag 7 Repetitorium Informatik (Java)

Tag 7 Repetitorium Informatik (Java) Tag 7 Repetitorium Informatik (Java) Dozent: Patrick Kreutzer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Informatik-Repetitorium

Mehr

Programmierkurs C/C++

Programmierkurs C/C++ Blockkurs: "Einführung in C/C++" Programmierkurs C/C++ Donnerstag Sandro Andreotti andreott@inf.fu-berlin.de WS 2008/09 1 Structs Blockkurs: "Einführung in C/C++" 2 Structs sind Bündel von Variablen (unter

Mehr

C++ - Objektorientierte Programmierung Klassen und Objekte

C++ - Objektorientierte Programmierung Klassen und Objekte C++ - Objektorientierte Programmierung Klassen und Objekte hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen Leibniz Universität IT Services Anja Aue Klasse Warteschlange

Mehr

Klausur Programmieren 2 WS2016/17

Klausur Programmieren 2 WS2016/17 Klausur Programmieren 2 WS2016/17 Name Gruppe 1 Vorname Dauer 90 min Matrikelnummer Hilfsmittel keine Die Klausur ist mit 50 Punkten sicher bestanden. Hinweise: Formulieren Sie Ihre Lösungen auf dem Aufgabenblatt

Mehr

Umsetzung einer Klassenkarte in einer Programmiersprache

Umsetzung einer Klassenkarte in einer Programmiersprache Klassen in Java Umsetzung einer Klassenkarte in einer Programmiersprache Objektorientierte Programme bestehen (nur) aus Klassendefinitionen In Klassendefinitionen wird die Struktur der Objekte festgelegt,

Mehr

Thema heute: Vererbung und Klassenhierarchien. Abgeleitete Klassen. Vererbung von Daten und Funktionen. Virtuelle Funktionen

Thema heute: Vererbung und Klassenhierarchien. Abgeleitete Klassen. Vererbung von Daten und Funktionen. Virtuelle Funktionen 1 Thema heute: Vererbung und Klassenhierarchien Abgeleitete Klassen Vererbung von Daten und Funktionen Virtuelle Funktionen 2 Vererbung oft besitzen verschiedene Datentypen einen gemeinsamen Kern Beispiel:

Mehr

Programmierung III. Pointer für Fortgeschrittene Marc Ruberg. Arrays von Pointern ( Zeigervektoren ): Pointer auf Pointer:

Programmierung III. Pointer für Fortgeschrittene Marc Ruberg. Arrays von Pointern ( Zeigervektoren ): Pointer auf Pointer: Programmierung III Marc Ruberg 1 Pointer für Fortgeschrittene Arrays von Pointern ( Zeigervektoren ): long *zahlenptr[25]; char *strptr[1000]; Pointer auf Pointer: char **sp Zeiger auf Funktionen: Typ

Mehr

1 Klassen und Objekte

1 Klassen und Objekte 1 Klassen und Objekte Datentyp - Spezifikation des Typs von Datenobjekten Datenstruktur - logische Ordnung von Elementen eines Datentyps - zur (effizienten) Speicherung, Verwaltung, Zugriff - auf die Elemente

Mehr

Objektorientierte Programmierung Studiengang Medieninformatik

Objektorientierte Programmierung Studiengang Medieninformatik Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 1 15.03.2017 Objektorientierte Programmierung (Studiengang Medieninformatik) Form: Prüfung:

Mehr

Info-2, Klausurvorbereitung, SS 2016

Info-2, Klausurvorbereitung, SS 2016 Info-2, Klausurvorbereitung, SS 2016 Die folgenden Fragen dienen der Vorbereitung auf die Klausur. Die hier gestellten Aufgaben sind umfangreicher als in der Klausur. In der Klausur sind die Fragen schriftlich,

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 39 Einstieg in die Informatik mit Java Objektorientierte Programmierung und Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 39 1 Überblick:

Mehr

Objektorientierung Grundlagen

Objektorientierung Grundlagen Prof. Dr.-Ing. Andreas Simon Telefon +49 (0)5331 939 42630 Telefax +49 (0)5331 939 43634 E-Mail a.simon@ostfalia.de Objektorientierung Grundlagen Probeklausur 18. Mai 2015 Name: Mat.-Nr.: Vorname: Login:

Mehr

c) Zur Ausgabe der Transaktion soll statt print der Operator << verwendet werden.geben Sie die dazu nötigen Änderungen an.

c) Zur Ausgabe der Transaktion soll statt print der Operator << verwendet werden.geben Sie die dazu nötigen Änderungen an. Klausur OOP SS2001 (Gampp) ufgabe 1 (22 Punkte) a) Während einer bargeldlosen Giro-ank Transaktion können eträge zwischen Währungen konvertiert werden. Eine Klasse Transaktion soll solche uchungen beschreiben

Mehr

6 ZEIGER UND REFERENZEN - ALLGEMEINES

6 ZEIGER UND REFERENZEN - ALLGEMEINES 6 ZEIGER UND REFERENZEN - ALLGEMEINES Leitideen: Zeiger sind Adressen mit zusätzlicher Typinformation über das dort gespeicherte Objekt. Die Vereinbarungssyntax soll der Ausdruckssyntax entsprechen und

Mehr

Einführung in die Programmierung

Einführung in die Programmierung : Inhalt 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 - mit / ohne Parameter - mit / ohne Rückgabewerte

Mehr

Programmierkurs C++ Konstruktor, Statische Methoden Namespaces

Programmierkurs C++ Konstruktor, Statische Methoden Namespaces Programmierkurs C++ Konstruktor, Statische Methoden Namespaces Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Initialisierung von Datenstrukturen

Mehr

Informationsverarbeitung im Bauwesen

Informationsverarbeitung im Bauwesen 1/21 Informationsverarbeitung im Bauwesen Einführung in das Programmieren mit C++ Markus Uhlmann Institut für Hydromechanik Karlsruher Institut für Technologie www.ifh.kit.edu WS 2010/2011 Vorlesung 8

Mehr

Programmieren - C++ Templates

Programmieren - C++ Templates Programmieren - C++ Templates Reiner Nitsch 8471 reiner.nitsch@h-da.de Was sind Funktionstemplates? C++ unterscheidet zwischen Funktionstemplates (dieses Kapitel) und Klassentemplates (später). Funktionstemplates

Mehr

Objektorientiertes Programmieren für Ingenieure

Objektorientiertes Programmieren für Ingenieure Uwe Probst Objektorientiertes Programmieren für Ingenieure Anwendungen und Beispiele in C++ 18 2 Von C zu C++ 2.2.2 Referenzen und Funktionen Referenzen als Funktionsparameter Liefert eine Funktion einen

Mehr

Grundlagen der Objektorientierung :

Grundlagen der Objektorientierung : Grundlagen der Objektorientierung : Objektorientierung ermöglicht (unter anderem), daß man Software, die von einem selbst, meist aber von Anderen geschrieben ist, komfortabel nochmal verwenden kann. Diese

Mehr

Grundlagen der Informatik 6. Arrays I

Grundlagen der Informatik 6. Arrays I 6. Arrays I Motivation Array (konstante Länge) Speicherbereich Eingabe von Arrays Grundlagen der Informatik (Alex Rempel) 1 Motivation Beispiel: Bildschirmpixel zeichnen Auflösung 800x600, d.h. insgesamt

Mehr

2. Semester, 2. Prüfung, Lösung

2. Semester, 2. Prüfung, Lösung 2. Semester, 2. Prüfung, Lösung Name Die gesamte Prüfung bezieht sich auf die Programmierung in C++! Prüfungsdauer: 90 Minuten Mit Kugelschreiber oder Tinte schreiben Lösungen können direkt auf die Aufgabenblätter

Mehr

C++ Teil 9. Sven Groß. 17. Juni Sven Groß (IGPM, RWTH Aachen) C++ Teil Juni / 17

C++ Teil 9. Sven Groß. 17. Juni Sven Groß (IGPM, RWTH Aachen) C++ Teil Juni / 17 C++ Teil 9 Sven Groß 17. Juni 2016 Sven Groß (IGPM, RWTH Aachen) C++ Teil 9 17. Juni 2016 1 / 17 Themen der letzten Vorlesung Objektorientierung und Klassen Attribute / Datenelemente Methoden / Elementfunktionen

Mehr

Auswahlen (Selektionen)

Auswahlen (Selektionen) 1 Anhang 10.3 Ein/Ausgaben Eingabe mit Prompt (Beispiel) cout ; // Prompt ohne endl cin

Mehr

C++ - Operatoren. Eigene Klassen mit neuen Funktionen

C++ - Operatoren. Eigene Klassen mit neuen Funktionen C++ - Operatoren Eigene Klassen mit neuen Funktionen Übersicht Klassen bisher Eigene Operatoren definieren 2 Bisher Durch Kapselung, Vererbung und Polymorphy können nun eigene Klassen definiert werden,

Mehr

C++ - Variablen: Gültigkeit - Sichtbarkeit

C++ - Variablen: Gültigkeit - Sichtbarkeit C++ - Variablen: Gültigkeit - Sichtbarkeit Reiner Nitsch 8417 r.nitsch@fbi.h-da.de Attribute von Variablen und Funktionen Attribute von Variablen sind Name (name), Typ (type), Wert (value) Attribute von

Mehr

Themen. Formatierte und unformatierte Eingabe Bedingungsoperator Namespaces Kommandozeilenargumente

Themen. Formatierte und unformatierte Eingabe Bedingungsoperator Namespaces Kommandozeilenargumente Themen Formatierte und unformatierte Eingabe Bedingungsoperator Namespaces Kommandozeilenargumente Formatierte Eingabe mit cin Die Formatierung der Eingabe ist der Ausgabe sehr ähnlich: Die Flags werden

Mehr

Java Einführung Methoden. Kapitel 6

Java Einführung Methoden. Kapitel 6 Java Einführung Methoden Kapitel 6 Inhalt Deklaration und Aufruf von Methoden Lokale und globale Namen (Bezeichner) Sichtbarkeit und Lebensdauer von Variablen in Methoden Überladen von Methoden 2 Methoden

Mehr

Statische und Nichtstatische Methoden Properties/ Eigenschaften

Statische und Nichtstatische Methoden Properties/ Eigenschaften Statische und Nichtstatische Methoden Properties/ Eigenschaften Statische Methoden Definition und Merkmale von Properties Modifizierer Beispiele Nebeneffekte Dr. Beatrice Amrhein Statische / Nichtstatische

Mehr

Kap 1. Programmentwicklung

Kap 1. Programmentwicklung Kap 1. Programmentwicklung Dr. Norbert Spangler / Programmieren I 30.09.2013 1 1.1 Programme Ein Programm ist ein in einer Programmiersprache formulierter Algorithmus. -> Was ist eine Programmiersprache?

Mehr

Programmieren in C++ Klassen

Programmieren in C++ Klassen Programmieren in C++ Klassen Inhalt Klassen (vertieft) Destruktor Konstruktoren Move-Semantik und Rechtswert-Referenzen (C++11) C++11 Features Prof. Dr. C. Stamm Programmieren in C++, FS 13 4-2 Implementierung

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können

Mehr

Klassen mit Instanzmethoden

Klassen mit Instanzmethoden Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 3.12.07 G. Bohlender (IANM UNI Karlsruhe) OOP und Klassen 3.12.07

Mehr

Unterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur

Unterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur Unterprogramme Unterprogramme sind abgekapselte Programmfragmente, welche es erlauben, bestimmte Aufgaben in wiederverwendbarer Art umzusetzen. Man unterscheidet zwischen Unterprogrammen mit Rückgabewert

Mehr

Objektorientierte Programmierung mit C++ Zusammenfassung der wichtigsten Topics rund um die objektorientierte Programmierung mit C++11

Objektorientierte Programmierung mit C++ Zusammenfassung der wichtigsten Topics rund um die objektorientierte Programmierung mit C++11 Objektorientierte Programmierung mit C++ Zusammenfassung der wichtigsten Topics rund um die objektorientierte Programmierung mit C++11 Wozu objektorientiertes Programmieren? Die Welt besteht für den Menschen

Mehr

Mikrorechentechnik II. Klassen in C++

Mikrorechentechnik II. Klassen in C++ Mikrorechentechnik II Klassen in C++ class class cfilter { float K; float T; float Ta; public: // Filterverstärkung // Filterzeitkonstante // Tastzeit Zugriffskontrolle: public, protected, private void

Mehr

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2014/2015 Wirtschaftsingenieur Bachelor 4. Aufgabe Datenstruktur, Dateieingabe und -ausgabe

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2014/2015 Wirtschaftsingenieur Bachelor 4. Aufgabe Datenstruktur, Dateieingabe und -ausgabe Aufgabenstellung Für ein Baumkataster sollen für maximal 500 Bäume Informationen gespeichert werden, die alle nach der gleichen Weise wie folgt strukturiert sind: Nummer Bauminfo Baumart Hoehe Baum Umfang

Mehr

Pseudo-Programmiersprache

Pseudo-Programmiersprache 1 Erste Schritte in C++ 4 Beschreibungsmöglichkeiten für Algorithmen Struktogramm Das gezeigte Struktogramm enthält die elementaren Grundstrukturen Folge, Auswahl und Schleife. Diese werden in einem der

Mehr

OOP und Angewandte Mathematik. Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik

OOP und Angewandte Mathematik. Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik WS 2011/12 Inhalt Test-Besprechung! Ziele verdeutlichen Große Bild von OOP Wiederholung: Einbettung als Technik

Mehr

13. Vererbung. Prof. Dr. François E. Cellier Informatik I für D-ITET (HS 2012)

13. Vererbung. Prof. Dr. François E. Cellier Informatik I für D-ITET (HS 2012) 13. Vererbung Prof. Dr. François E. Cellier Informatik I für D-ITET (HS 2012) Vererbung Konzept Protected Section Virtuelle Mitgliedsfunktionen Verwendung von Vererbung Vererbung Vererbung ist ein Mechanismus,

Mehr

C++ Notnagel. Ziel, Inhalt. Programmieren in C++

C++ Notnagel. Ziel, Inhalt. Programmieren in C++ C++ Notnagel Ziel, Inhalt Ich versuche in diesem Dokument noch einmal die Dinge zu erwähnen, die mir als absolut notwendig für den C++ Unterricht und die Prüfungen erscheinen. C++ Notnagel 1 Ziel, Inhalt

Mehr

Programmierung und Angewandte Mathematik

Programmierung und Angewandte Mathematik Programmierung und Angewandte Mathematik C++ /Scilab Programmierung und Einführung in das Konzept der objektorientierten Anwendungen zu wissenschaftlichen Rechnens SS 2012 Ablauf Was sind Funktionen/Methoden

Mehr