Mehr Effektiv C++ programmieren

Größe: px
Ab Seite anzeigen:

Download "Mehr Effektiv C++ programmieren"

Transkript

1 Scott Meyers Mehr Effektiv C++ programmieren 35 neue Wege zur Verbesserung Ihrer Programme und Entwürfe Deutsche Übersetzung von Markus Beringmeier ^ ADDISON-WESLEY An imprint of Addison Wesley Longman, Inc. Bonn Reading, Massachusetts Menlo Park, California New York Harlow, England Don Mills, Ontario Sydney Mexico City Madrid Amsterdam

2 Vorwort des Übersetzers 9 Danksagungen 11 Die Richtlinien 11 Das Buch 13 Die Menschen 14 Einführung 15 Das C++ in»effektiver C++ programmieren«16 Konventionen und Terminologie 18 Hinweise auf Fehler, Verbesserungsvorschläge, Korrekturen 21 1 Grundlagen Richtlinie 1: Der Unterschied zwischen Zeigern und Referenzen Richtlinie 2: Bevorzuge C++-Casts vor dem C-Cast Richtlinie 3: Mische niemals Vektoren und Polymorphie Richtlinie 4: Vermeide grundlose Standardkonstruktoren 33 2 Operatoren Richtlinie 5: Sei vorsichtig bei benutzerdefinierten Umwandlungen Richtlinie 6: Unterscheide Präfix und Postfix des Inkrement- und Dekrementoperators Richtlinie 7: Überlade niemals &&, I I oder, Richtlinie 8: Verstehe die unterschiedlichen Bedeutungen von new und delete Placement new Löschen und Speicherrückgabe Vektoren 56 3 Exceptions (Ausnahmebedingungen) Richtlinie 9: Benutze Destruktoren, um Ressourcenlecks zu verhindern Richtlinie 10: Verhindere Ressourcenlecks in Konstruktoren 65

3 3.3 Richtlinie 11: Verhindere Exceptions bei Destruktoren Richtlinie 12: Verstehe, wie sich das Werfen einer Exception von der Parameterübergabe oder von einem virtuellen Funktionsaufruf unterscheidet Richtlinie 13: Fange Exceptions per Referenz Richtlinie 14: Benutze Exceptionspezifikationen mit Bedacht Richtlinie 15: Verstehe die Kosten der Exceptionbehandlung 93 Effizienz Richtlinie 16: Denke an die Regel Richtlinie 17: Erwäge Lazy Evaluation (verzögerte Berechnung) Reference Counting (Referenzzählung) Lesen vom Schreiben unterscheiden Lazy Fetching (verzögertes Holen) Lazy Expression Evaluation (Verzögerte Bewertung von Ausdrücken) Zusammenfassung Richtlinie 18: Spare die Kosten erwarteter Berechnungen Richtlinie 19: Verstehe den Ursprung temporärer Objekte Richtlinie 20: Ermögliche die Returnwertoptimierung Richtlinie 21: Nutze Überladung, um implizite Umwandlungen zu vermeiden Richtlinie 22: Erwäge die Benutzung von op= anstelle eines einzigen Operators Richtlinie 23: Erwäge die Benutzung anderer Bibliotheken Richtlinie 24: Verstehe die Kosten virtueller Funktionen, Mehrfachvererbung, virtueller Basisklassen und RTTI 129 Techniken Richtlinie 25: Virtuelle Konstruktoren und Nichtmemberfunktionen Nichtmemberfunktionen virtuell machen Richtlinie 26: Die Anzahl von Objekten einer Klasse begrenzen Keins oder nur ein Objekt erlauben Zusammenhänge der Objekt-Konstruktion Objekte dürfen kommen und gehen Eine Basisklasse für Objekt-Zählung Richtlinie 27 Wie man Objekte auf dem Heap verhindert oder erzwingt Heapbasierte Objekte erzwingen Feststellen, ob ein Objekt auf dem Heap ist Heapbasierte Objekte verhindern Richtlinie 28: Smart Pointer (intelligente Zeiger) 173

4 Konstruktion, Zuweisung und Destruktion von Smart Pointern Implementation der Dereferenzierungsoperatoren Wie man Smart Pointer auf Null testet Smart Pointer in normale Zeiger umwandeln Smart Pointer und vererbungsbasierte Typumwandlungen Smart Pointer und const Bewertung Richtlinie 29: Reference Counting (Referenzzählung) Implementierung der Referenzzählung Copy-on-Write (beim Schreiben kopieren) Zeiger, Referenzen und copy-on-write Eine Basisklasse für Referenzzählung Automatisierung der Manipulation des Referenzzählers Alles zusammenbauen Referenzzählung für existierende Klassen hinzufügen Bewertung Richtlinie 30: Proxy-Klassen Implementierung zweidimensionaler Vektoren bei operator[] Lesen vom Schreiben unterscheiden Einschränkungen Bewertung Richtlinie 31: Funktionen abhängig von mehreren Objekten virtuell machen Benutzung von virtuellen Funktionen und RTTI Nur virtuelle Funktionen benutzen Emulation virtueller Funktionstabellen Initialisierung von emulierten virtuellen Funktionstabellen Benutzung von Nichtmemberfunktionen, um Kollisionen zu behandeln Vererbung und die Emulation virtueller Funktionstabellen Initialisierung von emulierten virtuellen Funktionstabellen (verbesserte Version) 262 Vermischtes Richtlinie 32: Programmiere mit Blick auf die Zukunft Richtlinie 33: Mache Basisklasse abstrakt, die nicht am Ende der Hierarchie stehen Richtlinie 34: Verstehe, wie man C++ und C kombiniert Name Mangling (Namenszerstückelung) Initialisierung von statischen Objekten Dynamische Speicheranforderung Kompatibilität der Datenstrukturen Zusammenfassung Richtlinie 35: Mach Dich vertraut mit dem Sprachstandard Die Standard Template Library 292

5 s 7 Literaturempfehlungen vom Autor Eine Implementierung von auto_ptr 303 Stichwortverzeichnis 307 Der Übersetzer 325

Objektorientiertes Programmieren in C++

Objektorientiertes Programmieren in C++ Nicolai Josuttis Objektorientiertes Programmieren in C++ Von der Klasse zur Klassenbibliothek D-64289 Darmstadt ADDISON-WESLEY PUBLISHING COMPANY Bonn Paris Reading, Massachusetts Menlo Park, California

Mehr

Die С ++-Programmiersprache

Die С ++-Programmiersprache Bjarne Stroustrup Die С ++-Programmiersprache 3., aktualisierte und erweiterte Auflage Deutsche Übersetzung von Nicolai Josuttis und Achim Lörke raddison-wesley An imprint of Addison Wesley Longman, Inc.

Mehr

C++für Naturwissenschaftler

C++für Naturwissenschaftler Dietmar Herrmann C++für Naturwissenschaftler Beispielorientierte Einführung ADDISON-WESLEY An imprint of Addison Wesley Longman, Inc. Bonn Reading, Massachusetts Menlo Park, California New York Harlow,

Mehr

Martin Fowler, Kendali Scott. UML - konzentriert. Die Standardobjektmodellierungssprache anwenden

Martin Fowler, Kendali Scott. UML - konzentriert. Die Standardobjektmodellierungssprache anwenden Martin Fowler, Kendali Scott 2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. UML - konzentriert Die Standardobjektmodellierungssprache

Mehr

Vorwort zur zweiten Auflage 1. Vorwort zur ersten Auflage 2

Vorwort zur zweiten Auflage 1. Vorwort zur ersten Auflage 2 Vorwort zur zweiten Auflage 1 Vorwort zur ersten Auflage 2 1 Über dieses Buch 3 1.1 WarumdiesesBuch?... 3 1.2 Voraussetzungen...... 4 1.3 Systematik... 4 1.4 WieliestmandiesesBuch?... 6 1.5 ZugriffaufdieQuellenzudenBeispielen...

Mehr

Objektorientierte Programmierung mite**

Objektorientierte Programmierung mite** mc Jürgen Franz/Christoph Mattheis Objektorientierte Programmierung mite** Systemunabhängig umsteigen auf C ++ Windowsprogrammierung Beispiele für UNIX Mit 66 Abbildungen Franzis 9 Inhalt 1 Überblick C++

Mehr

Die C++-Programmiersprache

Die C++-Programmiersprache Bjarne Stroustrup Die C++-Programmiersprache 4, aktualisierte und erweiterte Auflage Deutsche Übersetzung der»special Edition^ von Nicolai Josuttis und Achim Lörke ADDISON-WESLEY An imprint of Pearson

Mehr

Objektorientierte Programmierung mit Java

Objektorientierte Programmierung mit Java David J. Barnes Michael Kölling Objektorientierte Programmierung mit Java Eine praxisnahe Einführung mit BlueJ Übersetzt von Axel Schmolitzky, Universität Hamburg PEARSON Studium ein Imprint von Pearson

Mehr

ADDISON-WESLEY PUBLISHING COMPANY

ADDISON-WESLEY PUBLISHING COMPANY Jens-Peter Redlich CORBA 2.0 Praktische Einführung für C++ und Java Mit einem Geleitwort von Richard Mark Soley ADDISON-WESLEY PUBLISHING COMPANY Bonn Reading, Massachusetts Menlo Park, California New

Mehr

Programmieren in C+ Einführung in den Sprachstandard C++ Springer-Verlag Berlin Heidelberg New York London Paris Tokyo Hong Kong Barcelona Budapest

Programmieren in C+ Einführung in den Sprachstandard C++ Springer-Verlag Berlin Heidelberg New York London Paris Tokyo Hong Kong Barcelona Budapest Martin Schader Stefan Kuhlins Programmieren in C+ Einführung in den Sprachstandard C++ Zweite, verbesserte und erweiterte Auflage Mit 25 Abbildungen Springer-Verlag Berlin Heidelberg New York London Paris

Mehr

C-Programmierung lernen

C-Programmierung lernen 2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. Andre Willms C-Programmierung lernen Anfangen, anwenden, verstehen

Mehr

Objektorientierung. Helmut Herold Michael Klar Susanne Klar ^-ADDISON-WESLEY. An imprint of Pearson Education

Objektorientierung. Helmut Herold Michael Klar Susanne Klar ^-ADDISON-WESLEY. An imprint of Pearson Education Helmut Herold Michael Klar Susanne Klar Objektorientierung ^-ADDISON-WESLEY An imprint of Pearson Education München Boston San Francisco Harlow, England Don Mills, Ontario Sydney Mexico City Madrid Amsterdam

Mehr

ActiveX/DCOM-Programmierung mit Visual C++ 6

ActiveX/DCOM-Programmierung mit Visual C++ 6 Victor Sirotin ActiveX/DCOM-Programmierung mit Visual C++ 6 Entwicklung von Office- und InterneWIntranet-Anwendungen yy ADDISON-WESLEY An imprint of Addison Wesley Longman, Inc. Bonn Reading, Massachusetts

Mehr

Inhalt. Vorwort Erste Grundlagen... 15

Inhalt. Vorwort Erste Grundlagen... 15 Inhalt Vorwort... 13 1 Erste Grundlagen... 15 1.1 Historisches... 15 1.2 Die Programmiersprache C++ und die Maschine... 16 1.3 Werkzeuge zum Programmieren... 18 1.3.1 Der Editor... 18 1.3.2 Der Compiler...

Mehr

Objektorientiert in C++

Objektorientiert in C++ Dirk Louis Objektorientiert in C++ Einstieg und professioneller Einsatz intwickier.pres: Vorwort 11 1 Schnellkurs C++ 13 1.1 ANSI-C++ und die Compiler 13 Compiler und Programmerstellung 13 ANSI und die

Mehr

Microsoft FrontPage 98

Microsoft FrontPage 98 Michael Morgenroth Maria Pasquini Microsoft FrontPage 98 Webseiten erstellen und verwalten ^ ADDISON-WESLEY An imprint of Addison Wesley Longman, Inc. Bonn Reading, Massachusetts Menlo Park, California

Mehr

Inhaltsverzeichnis. Vorwort

Inhaltsverzeichnis. Vorwort Inhaltsverzeichnis Vorwort XI 1 C/C++-Grundlagen 1 1.1 Einführung................................ 1 1.1.1 Entwicklungsgeschichte: Von K&R-C nach C++........ 1 1.1.2 Beispielprogramme.......................

Mehr

UML - Unified Modeling Language

UML - Unified Modeling Language Rainer Burkhardt UML - Unified Modeling Language Objektorientierte Modellierung für die Praxis ADDISON-WESLEY An imprint of Addison Wesley Longman, Inc. Bonn Reading, Massachusetts Menlo Park, California

Mehr

Programmieren mit Java

Programmieren mit Java Reinhard Schiedermeier Programmieren mit Java 2., aktualisierte Auflage ein Imprint von Pearson Education München Boston San Francisco Harlow, England Don Mills, Ontario Sydney Mexico City Madrid Amsterdam

Mehr

Praxisorientierte Einführung in C++ Lektion: "C++ Cast Operatoren"

Praxisorientierte Einführung in C++ Lektion: C++ Cast Operatoren Praxisorientierte Einführung in C++ Lektion: "C++ Cast Operatoren" Christof Elbrechter Neuroinformatics Group, CITEC April 24, 2014 Christof Elbrechter Praxisorientierte Einführung in C++ April 24, 2014

Mehr

Projektmanagement. Konzeption und praktischer Einsatz des R/3 Moduls PS ADDISON-WESLEY. An imprint of Addison Wesley Longman, Inc.

Projektmanagement. Konzeption und praktischer Einsatz des R/3 Moduls PS ADDISON-WESLEY. An imprint of Addison Wesley Longman, Inc. Erich Dräger Projektmanagement mit SAP R/3 Konzeption und praktischer Einsatz des R/3 Moduls PS ADDISON-WESLEY An imprint of Addison Wesley Longman, Inc. Bonn Reading, Massachusetts Menlo Park, California

Mehr

VBA mit Office 97 lernen

VBA mit Office 97 lernen Rene Martin 2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. VBA mit Office 97 lernen Einstieg in die Welt der Makro-Programmierung

Mehr

Peter Prinz Ulla Kirch-Prinz C+ + Lernen und professionell anwenden. ffl mitp

Peter Prinz Ulla Kirch-Prinz C+ + Lernen und professionell anwenden. ffl mitp Peter Prinz Ulla Kirch-Prinz C+ + Lernen und professionell anwenden ffl mitp Inhaltsverzeichnis Einleitung 19 1 Grundlagen 21 Entwicklung und Eigenschaften von C + + 22 Objektorientierte Programmierung

Mehr

3 VERERBUNG ALLGEMEINES

3 VERERBUNG ALLGEMEINES 3 VERERBUNG ALLGEMEINES Leitideen: Die Hinzufügung von Daten- oder Funktionskomponenten zu einer vorhandenen Klasse (Basisklasse) wird als Vererbung und die auf diese Weise erzeugte Klasse als abgeleitete

Mehr

Mapra: C++ Teil 6. Felix Gruber, Sven Groß. IGPM, RWTH Aachen. 13. Juni 2017

Mapra: C++ Teil 6. Felix Gruber, Sven Groß. IGPM, RWTH Aachen. 13. Juni 2017 Mapra: C++ Teil 6 Felix Gruber, Sven Groß IGPM, RWTH Aachen 13. Juni 2017 Felix Gruber, Sven Groß (IGPM, RWTH Aachen) Mapra: C++ Teil 6 13. Juni 2017 1 / 22 Was bisher geschah Klassen I Attribute und Methoden

Mehr

HSR Rapperswil 2001 Markus Rigling. Programmieren: Smart Pointer Auflage

HSR Rapperswil 2001 Markus Rigling. Programmieren: Smart Pointer Auflage HSR Rapperswil 2001 Markus Rigling Programmieren: Smart Pointer 1 1. Auflage Inhaltsverzeichnis: 1. Smart Pointer3 2. Vor- Nachteile von Smart Pointer..3 3. auto_ptr..3 4. Umsetzung / Anwendung:.4 5. Wertzuweisung

Mehr

\ Richtlinien für das V Framework Design

\ Richtlinien für das V Framework Design \ Richtlinien für das V Framework Design Konventionen, Ausdrücke und Muster für wiederverwendbare.net-bibliotheken KrzysztofCwalina Brad Abrams ^ y ADDISON-WESLEY An imprint of Pearson Education München

Mehr

in 21 Tagen Jesse Liberty Der optimale Weg - {Schritt für Schritt zum Programmierprofi

in 21 Tagen Jesse Liberty Der optimale Weg - {Schritt für Schritt zum Programmierprofi Jesse Liberty Deutsche Übersetzung: Petra Alm in 21 Tagen Der optimale Weg - {Schritt für Schritt zum Programmierprofi Einführung in die objektorientierte Programmierung Alle Programme getestet mit Microsoft

Mehr

Einleitung Grundlagen 23

Einleitung Grundlagen 23 Einleitung 21 1 Grundlagen 23 Entwicklung und Eigenschatten von C++ 24 Objektorientierte Programmierung 26 Erstellen eines C + + -Programms 28 Ein erstes C+ + -Programm 30 Struktur einfacher C++-Programme

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

Objektorientierte Prozeßsimulation in C++

Objektorientierte Prozeßsimulation in C++ Joachim Fischer Klaus Ahrens Objektorientierte Prozeßsimulation in C++ SUB Göttingen 204938 880 98A24564 ADDISON-WESLEY PUBLISHING COMPANY Bonn Reading, Massachusetts Menlo Park, California New York Don

Mehr

PC Perfekt! Troubleshooting, Aufrüstung, Tuning. Michael Kiermeier ADDISON-WESLEY. An imprint of Addison Wesley Longman, Inc.

PC Perfekt! Troubleshooting, Aufrüstung, Tuning. Michael Kiermeier ADDISON-WESLEY. An imprint of Addison Wesley Longman, Inc. Michael Kiermeier PC Perfekt! Troubleshooting, Aufrüstung, Tuning ADDISON-WESLEY An imprint of Addison Wesley Longman, Inc. Bonn Reading, Massachusetts Menlo Park, California New York Harlow, England Don

Mehr

Effektiv C++ 22 Tips für besseres C++ basierend auf Ideen von Scott Meyers. Stephan Brumme, 21.Mai 2002

Effektiv C++ 22 Tips für besseres C++ basierend auf Ideen von Scott Meyers. Stephan Brumme, 21.Mai 2002 1 22 Tips für besseres C++ basierend auf Ideen von Scott Meyers Gliederung 2 1. Einführung 2. Der Umstieg von C nach C++ 3. Konstruktoren, Destruktoren und Zuweisungsoperatoren 4. Entwurf und Deklaration

Mehr

Martin Fowler, Kendall Scott. UML konzentriert. Eine strukturierte Einführung in die Standard-Objektmodellierungssprache. 2., aktualisierte Auflage

Martin Fowler, Kendall Scott. UML konzentriert. Eine strukturierte Einführung in die Standard-Objektmodellierungssprache. 2., aktualisierte Auflage Martin Fowler, Kendall Scott UML konzentriert Eine strukturierte Einführung in die Standard-Objektmodellierungssprache 2., aktualisierte Auflage Deutsche Übersetzung von Arnulf Mester, Michael Sczittnick

Mehr

Python. Grundlagen und Praxis. Peter Walerowski ADDISON-WESLEY. An imprint of Pearson Education

Python. Grundlagen und Praxis. Peter Walerowski ADDISON-WESLEY. An imprint of Pearson Education Peter Walerowski Python Grundlagen und Praxis ADDISON-WESLEY An imprint of Pearson Education München Boston San Francisco Harlow, England Don Mills, Ontario Sydney Mexico City Madrid Amsterdam Einleitung

Mehr

Java lernen mit BlueJ

Java lernen mit BlueJ David J. Barnes Michael Kölling Java lernen mit BlueJ Eine Einführung in die objektorientierte Programmierung 3. Auflage Übersetzt von Axel Schmolitzky, Universität Hamburg ein Imprint von Pearson Education

Mehr

Werner Achte rt DATA BECKER

Werner Achte rt DATA BECKER Werner Achte rt. DATA BECKER Inhaltsverzeichnis 1. Einführung 21 1.1 Entwurf von Anwendungssystemen 23 1.2 Entwicklung eines Programms 25 1.3 Objektorientierte Programmierung 29 1.4 Darstellung objektorientierter

Mehr

4. Objektorientierte Programmierung mit C++

4. Objektorientierte Programmierung mit C++ 4. Objektorientierte Programmierung mit C++ Einführung C++ / Entwicklung/ Sprachfamilie Nicht objektorientierte Erweiterungen von C Grundlagen des Typkonzepts von C++ Ziele der Objektorientierung Objekt

Mehr

Objektorientiertes Programmieren

Objektorientiertes Programmieren JL Ute Claussen Objektorientiertes Programmieren Mit Beispielen und Übungen in C++ Zweite, überarbeitete und erweiterte Auflage Mit 24 Abbildungen Springer Inhaltsverzeichnis 1 Einleitung 1 1.1 Was ist

Mehr

Inhaltsverzeichnis. Grundlagen und Einführung (1. Band) 1

Inhaltsverzeichnis. Grundlagen und Einführung (1. Band) 1 Inhaltsverzeichnis Grundlagen und Einführung (1. Band) 1 1 Einleitung und Vorwort 1 1.1 Vorwort zur 13. Auflage....................... 1 1.2 Vorwort zur 10. Auflage....................... 1 1.3 Voraussetzungen...........................

Mehr

SCSI-Bus und IDE-Schnittstelle

SCSI-Bus und IDE-Schnittstelle Friedhelm Schmidt SCSI-Bus und IDE-Schnittstelle Hardware, Protokollbeschreibung und praktische Anwendung 3 V aktualisierte Auflage ^ ^ ADDISON-WESLEY An imprint of Addison Wesley Longman, Inc. Bonn Reading,

Mehr

Einführung in Visual C++ 1.5

Einführung in Visual C++ 1.5 Guido Krüger Einführung in Visual C++ 1.5 Windows-Programmierung mit den Microsoft Foundation Classes 2. aktualisierte Auflage ADDISON-WESLEY PUBLISHING COMPANY Bonn Paris Reading, Massachusetts Menlo

Mehr

Windows NT 4.0 in heterogenen Netzen

Windows NT 4.0 in heterogenen Netzen Lars Gerschau Windows NT 4.0 in heterogenen Netzen Konzepte, Protokolle, Troubleshooting УУ ADDISON-WESLEY An imprint of Addison Wesley Longman, Inc. Bonn Reading, Massachusetts Menlo Park, California

Mehr

Programmierung mit Access 7 für Windows 95

Programmierung mit Access 7 für Windows 95 Ralf Albrecht, Natascha Nicol Programmierung mit Access 7 für Windows 95 Professionelle Anwendungsentwicklung mit Access 7 und VBA ADDISON-WESLEY PUBLISHING COMPANY Bonn Reading, Massachusetts Menlo Park,

Mehr

Windows 11. Grundlagen Praxis Optimierung. Klaus Fahnenstich Rainer G. Haselier ADDISON-WESLEY PUBLISHING COMPANY

Windows 11. Grundlagen Praxis Optimierung. Klaus Fahnenstich Rainer G. Haselier ADDISON-WESLEY PUBLISHING COMPANY Klaus Fahnenstich Rainer G. Haselier Windows 11 Grundlagen Praxis Optimierung ADDISON-WESLEY PUBLISHING COMPANY Bonn München Paris Reading, Massachusetts Menlo Park, California New York Don Mills, Ontario

Mehr

Überblick. Überblick. Abstrakte Klassen - rein virtuelle Funktionen Beispiele

Überblick. Überblick. Abstrakte Klassen - rein virtuelle Funktionen Beispiele Überblick 1. Einführung C++ / Entwicklung/ Sprachfamilie 2. Nicht objektorientierte Erweiterungen von C 2.1 Das Ein-/Ausgabekonzept von C++ 2.2 Referenzen in C++ 2.3 Heap-Allokatoren in C++ 3. Grundlagen

Mehr

Kapitel 2 Elementare Datentypen, Konstanten und Variablen Elementare Datentypen

Kapitel 2 Elementare Datentypen, Konstanten und Variablen Elementare Datentypen Inhaltsverzeichnis Einleitung Kapitel 1 Grundlagen Entwicklung und Eigenschaften von C++ Objektorientierte Programmierung Erstellen eines C++- Programms Ein erstes C++-Programm Struktur einfacher C++-Programme

Mehr

Einführung in die Programmierung mit C++

Einführung in die Programmierung mit C++ 1 Seite 1 Einführung in die Programmierung mit C++ Teil III - Objektorientierte Programmierung 9. Klassen und Methoden Was sind Klassen? Seite 2 sprachliches Mittel von C++ um objektorientierte Programmierung

Mehr

In C++ denken 2., revidierte Auflage

In C++ denken 2., revidierte Auflage Bruce Eckel 2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. In C++ denken 2., revidierte Auflage München H Prentice

Mehr

C++ für Dummies. Stephen R. Davis. Gegen den täglichen Frust mit C++ Übersetzung aus dem Amerikanischen: Judith Muhr.

C++ für Dummies. Stephen R. Davis. Gegen den täglichen Frust mit C++ Übersetzung aus dem Amerikanischen: Judith Muhr. Stephen R. Davis C++ für Dummies Gegen den täglichen Frust mit C++ Übersetzung aus dem Amerikanischen: Judith Muhr IWT Verlag GmbH An International Thomson Publishing Company Bonn Albany Belmont Boston

Mehr

Linux-Kernel- Programmierung

Linux-Kernel- Programmierung Michael Beck, Harald Böhme, Mirko Dziadzka, Ulrich Kunitz, Robert Magnus, Dirk Verworner, Claus Schröter Linux-Kernel- Programmierung Algorithmen und Strukturen der Version 2.2 5., aktualisierte und erweiterte

Mehr

Relationale Datenbanken - Theorie und Praxis

Relationale Datenbanken - Theorie und Praxis Hermann Sauer Relationale Datenbanken - Theorie und Praxis Mit einem Beitrag zu SQL-3 von Klaus Grieger 4., aktualisierte und erweiterte Auflage ^У ADDISON-WESLEY An imprint of Pearson Education München

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

C++ Teil 5. Sven Groß. 13. Mai Sven Groß (IGPM, RWTH Aachen) C++ Teil Mai / 18

C++ Teil 5. Sven Groß. 13. Mai Sven Groß (IGPM, RWTH Aachen) C++ Teil Mai / 18 C++ Teil 5 Sven Groß 13. Mai 2016 Sven Groß (IGPM, RWTH Aachen) C++ Teil 5 13. Mai 2016 1 / 18 Themen der letzten Vorlesung Funktionen Funktionsüberladung, Signatur Rekursion const-deklaration Referenzen

Mehr

HSR Rapperswil 2001 Markus Rigling. Programmieren: Vererbung. 1 Variante 2

HSR Rapperswil 2001 Markus Rigling. Programmieren: Vererbung. 1 Variante 2 HSR Rapperswil 2001 Markus Rigling Programmieren: Vererbung 1 Variante 2 Inhaltsverzeichnis: 1. Was ist Vererbung...3 2. Anwendung...3 3. Realisierung...3 4. Vorgehensweise zur Erstellung einer Kind-Klasse...3

Mehr

C++ - Einführung in die Programmiersprache Zeiger, Referenzen und Strukturen. Leibniz Universität IT Services Anja Aue

C++ - Einführung in die Programmiersprache Zeiger, Referenzen und Strukturen. Leibniz Universität IT Services Anja Aue C++ - Einführung in die Programmiersprache Zeiger, Referenzen und Strukturen Leibniz Universität IT Services Anja Aue Zeiger (Pointer) Verweis auf eine Speicherstelle. Speicherung einer Speicheradresse.

Mehr

Vorwort. Teil I: Grundkurs 1. 1 Keine Angst vor C++! 3

Vorwort. Teil I: Grundkurs 1. 1 Keine Angst vor C++! 3 Vorwort XV Teil I: Grundkurs 1 1 Keine Angst vor C++! 3 1.1 Von C zu C++ 4 1.1.1 Rückblick 4 1.1.2 Die strukturierte Programmierung 6 1.1.3 Chips sind billig, Programmierer teuer 8 1.1.4 Fassen wir zusammen

Mehr

Achim Bühl, Peter Zöfel SPSS. Methoden für die Markt- und Meinungsforschung. Technische Unäversität Darmstadt

Achim Bühl, Peter Zöfel SPSS. Methoden für die Markt- und Meinungsforschung. Technische Unäversität Darmstadt Inv.-Nr: Achim Bühl, Peter Zöfel SPSS Methoden für die Markt- und Meinungsforschung Technische Unäversität Darmstadt Institut für Sportwissenschaft - Bibliothek Magdalenenstraße 27, 64289 Darmstadt Tel.:

Mehr

Cisco TCP/IP-Routing. net.com networking & communications. Konzeption und Aufbau eines Netzwerkes mit Cisco-Routern TT ADDISON-WESLEY.

Cisco TCP/IP-Routing. net.com networking & communications. Konzeption und Aufbau eines Netzwerkes mit Cisco-Routern TT ADDISON-WESLEY. Chris Lewis Cisco TCP/IP-Routing Konzeption und Aufbau eines Netzwerkes mit Cisco-Routern TT ADDISON-WESLEY An imprint of Addison Wesley Longman, Inc. Bonn Reading, Massachusetts Menlo Park, California

Mehr

Thomas Binzinger. Jetzt lerne ich. Delphi. Markt+Technik Verlag

Thomas Binzinger. Jetzt lerne ich. Delphi. Markt+Technik Verlag Thomas Binzinger Jetzt lerne ich Delphi Markt+Technik Verlag Inhaltsverzeichnis Vorwort 1 1.1 1.2 1.3 1.4 2 2.1 2.2 2.3 3 3.1 3.2 3.3 3.4 3.5 3.6 4 4.1 4.2 4.3 4.4 4.5 4.6 5 5.1 5.2 5.3 Was ist Delphi?

Mehr

Robert Sedgewick. Algorithmen in Java. »il 1-4 Grundlagen Datenstrykturen Sortleren Suchen. java-beratung durch Michael Schidlowsky

Robert Sedgewick. Algorithmen in Java. »il 1-4 Grundlagen Datenstrykturen Sortleren Suchen. java-beratung durch Michael Schidlowsky Robert Sedgewick Algorithmen in Java»il 1-4 Grundlagen Datenstrykturen Sortleren Suchen java-beratung durch Michael Schidlowsky 3., überarbeitete Auflage PEARSON ein Imprint von Pearson Education München

Mehr

Programmieren in C++ Überladen von Methoden und Operatoren

Programmieren in C++ Überladen von Methoden und Operatoren Programmieren in C++ Überladen von Methoden und Operatoren Inhalt Überladen von Methoden Überladen von Operatoren Implizite und explizite Konvertierungsoperatoren 7-2 Überladen von Methoden Signatur einer

Mehr

Eclipse in der Java-Entwicklung

Eclipse in der Java-Entwicklung Patrick Kiwitter Eclipse in der Java-Entwicklung aktuell zur Version 3.4 ^Y '! I rwaddison-wesley An imprint of Pearson Education München Boston San Francisco Harlow, England Don Mills, Ontario Sydney

Mehr

C++ Klassen, Vererbung. Philipp Lucas. Sebastian Hack. Wintersemester 2008/09. saarland.

C++ Klassen, Vererbung. Philipp Lucas. Sebastian Hack. Wintersemester 2008/09. saarland. C++ Klassen, Vererbung Philipp Lucas phlucas@cs.uni-sb.de Sebastian Hack hack@cs.uni-sb.de Wintersemester 2008/09 saarland university computer science 1 Inhalt Klassen in C++ Sichtbarkeit Erzeugen von

Mehr

TYP03-Extensions entwickeln

TYP03-Extensions entwickeln Dmitry Dulepov TYP03-Extensions entwickeln Der Entwicklerleitfaden für Extensions mitdertyp03-api YV ADDISOIM-WESLEY An imprint of Pearson Education München Boston San Francisco Harlow, England Don Mills,

Mehr

Dirk Louis. c++ Das komplette Starterkit für den einfachen Einstieg in die Programmierung. 2. Auflage HANSER

Dirk Louis. c++ Das komplette Starterkit für den einfachen Einstieg in die Programmierung. 2. Auflage HANSER Dirk Louis c++ Das komplette Starterkit für den einfachen Einstieg in die Programmierung 2. Auflage HANSER I^^M^H ^^^B Inhalt Vorwort XXIII Teil I: Grundkurs 1 1 Keine Angst vor C++! 3 1.1 Von C zu C++

Mehr

Das Assembler-Buch. Trutz Eyke Podschun. Grundlagen und Hochsprachenoptimierung. 4., aktualisierte Auflage ADDISON-WESLEY

Das Assembler-Buch. Trutz Eyke Podschun. Grundlagen und Hochsprachenoptimierung. 4., aktualisierte Auflage ADDISON-WESLEY Trutz Eyke Podschun Das Assembler-Buch Grundlagen und Hochsprachenoptimierung 4., aktualisierte Auflage ^ ADDISON-WESLEY An imprint of Addison Wesley Longman, Inc. Bonn Reading, Massachusetts Menlo Park,

Mehr

Praxisorientierte Einführung in C++ Lektion: "Smart-Pointer"

Praxisorientierte Einführung in C++ Lektion: Smart-Pointer Praxisorientierte Einführung in C++ Lektion: "Smart-Pointer" Christof Elbrechter Neuroinformatics Group, CITEC June 26, 2014 Christof Elbrechter Praxisorientierte Einführung in C++ June 26, 2014 1 / 17

Mehr

Programmierpraktikum 3D Computer Grafik

Programmierpraktikum 3D Computer Grafik Dipl.Inf. Otmar Hilliges Programmierpraktikum 3D Computer Grafik Einführung in C++ Teil II: Klassen, Objekte, Funktionen und Vererbung. Funktionen [Rückgabetyp] [Name] ([Parameter]) { } Wichtig: Funktionen

Mehr

Kreativ entwerfen und gestalten mit CorelDRAW! 5.0

Kreativ entwerfen und gestalten mit CorelDRAW! 5.0 Natascha Nicol Ralf Albrecht Kreativ entwerfen und gestalten mit CorelDRAW! 5.0 W ADDISON-WESLEY PUBLISHING COMPANY Bonn Paris Reading, Massachusetts Menlo Park, California New York Don Mills, Ontario

Mehr

Programmierkurs C/C++

Programmierkurs C/C++ Blockkurs: "Einführung in C/C++" Programmierkurs C/C++ Freitag Sandro Andreotti andreott@inf.fu-berlin.de WS 2008/09 1 Blockkurs: "Einführung in C/C++" 2 Vererbung Klassen erben die Member von Basisklassen:

Mehr

Objektorientierte Sprachen

Objektorientierte Sprachen Objektorientierte Sprachen Eine Sprache, die Objekte unterstützt, heißt objektbasiert Eine klassenbasierte Sprache unterstützt zusätzlich Klassen Eine objektorientierte Sprache unterstützt zusätzlich die

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Objektorientierung in C++ (3) Aspekte der Vererbung (1) Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 546 Zuweisung bei Vererbung Dr. Frank Seifert Vorlesung

Mehr

Robert Sedgewick. Algorithmen in Java. Teil 1-4 Grundlagen Datenstrukturen Sortieren Suchen. Java-Beratung durch Michael Schidlowsky

Robert Sedgewick. Algorithmen in Java. Teil 1-4 Grundlagen Datenstrukturen Sortieren Suchen. Java-Beratung durch Michael Schidlowsky Robert Sedgewick Algorithmen in Java Teil 1-4 Grundlagen Datenstrukturen Sortieren Suchen Java-Beratung durch Michael Schidlowsky 3., überarbeitete Auflage \ PEARSON ein Imprint von Pearson Education München

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 35 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 35 1 Grundlagen 2 Verdeckte Variablen 3 Verdeckte Methoden 4 Konstruktoren

Mehr

C++ - Objektorientierte Programmierung Polymorphie

C++ - Objektorientierte Programmierung Polymorphie C++ - Objektorientierte Programmierung Polymorphie hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen C++ - Objektorientierte Programmierung 21.06.16 Seite 1 Polymorphie

Mehr

Relationale Datenbanken und SQL

Relationale Datenbanken und SQL Günter Matthiessen, Michael Unterstein Relationale Datenbanken und SQL Konzepte der Entwicklung und Anwendung yy ADDISON-WESLEY An imprint of Pearson Education München Boston San Francisco Harlow, England

Mehr

André Willms, C++: Eine kompakte Einführung, dpunkt.verlag, ISBN D3kjd3Di38lk323nnm

André Willms, C++: Eine kompakte Einführung, dpunkt.verlag, ISBN D3kjd3Di38lk323nnm D3kjd3Di38lk323nnm André Willms hat bereits während des Studiums der Allgemeinen Informatik mit dem Schreiben von Büchern zum Thema C++ begonnen. Heute ist er Autor mehrerer erfolgreicher Bücher zu C und

Mehr

Java lernen mit BlueJ

Java lernen mit BlueJ David J. Barnes, Michael Kölling Java lernen mit BlueJ Eine Einführung in die objektorientierte Programmierung 5. Auflage PEARSON Higher Education München Harlow Amsterdam Madrid Boston San Francisco Don

Mehr

Das erwartet dich in diesem Buch 8. Kapitel 1 Aufbruch ins Programmierabenteuer 14

Das erwartet dich in diesem Buch 8. Kapitel 1 Aufbruch ins Programmierabenteuer 14 Inhaltsverzeichnis Das erwartet dich in diesem Buch 8 Kapitel 1 Aufbruch ins Programmierabenteuer 14 Das Schlimmste vorab: die binäre Logik 15 So hoch entwickelt und doch so primitiv: der Prozessor 17

Mehr

4. Objektorientierte Programmierung mit C++

4. Objektorientierte Programmierung mit C++ 4. Objektorientierte Programmierung mit C++ Einführung C++ / Entwicklung der Sprachfamilie Erweiterungen der Sprache C: Ein- und Ausgabe, Referenzen, Speicherallokation und Freigabe Grundlagen des Typkonzepts

Mehr

Überblick. 6. Konstruktor und Destruktor - obligatorische Elementfunktionen einer Klasse

Überblick. 6. Konstruktor und Destruktor - obligatorische Elementfunktionen einer Klasse Überblick 1. Einführung C++ / Entwicklung/ Sprachfamilie 2. Nicht objektorientierte Erweiterungen von C 2.1 Das Ein-/Ausgabekonzept von C++ 2.2 Referenzen in C++ 2.3 Heap-Allokatoren in C++ 3. Grundlagen

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

Programmierkurs C++ Templates & STL (1/2)

Programmierkurs C++ Templates & STL (1/2) Programmierkurs C++ Templates & STL (1/2) Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck https://www.itm.uni-luebeck.de/people/fischer #2 Templates Die wichtigsten objekt-orientierten

Mehr

4 Generische Programmierung. 4.1 Klassen-Templates (*) 4.2 Funktions-Templates (*) 4.3 Besondere Programmiertechniken (Smart Pointer)

4 Generische Programmierung. 4.1 Klassen-Templates (*) 4.2 Funktions-Templates (*) 4.3 Besondere Programmiertechniken (Smart Pointer) 4 Generische Programmierung 4.1 Klassen-Templates (*) 4.2 Funktions-Templates (*) 4.3 Besondere Programmiertechniken (Smart Pointer) (*) Auch in dieser Datei. V 4.05; Hon. Prof. Helmke 1 Intelligente Zeiger

Mehr

2.1 Visual C Express installieren Visual C Express starten Visual C Express registrieren...

2.1 Visual C Express installieren Visual C Express starten Visual C Express registrieren... Datei: 5220_A02Inhalt.doc, Seite3 15. September 2010 Teil I Erste Schritte 1 Einleitung.... 9 1.1 Was Sie erwartet und was Sie nicht erwartet.... 9 1.2 Wie die Kapitel aufgebaut sind.... 10 1.3 Beispieldateien....

Mehr

Vererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 23.5.

Vererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 23.5. Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 23.5.07 G. Bohlender (IANM UNI Karlsruhe) Vererbung 23.5.07 1 / 22 Übersicht 1

Mehr

MICROSOFT EXCEL 3.0 HOTLINE

MICROSOFT EXCEL 3.0 HOTLINE Thomas Ta MICROSOFT EXCEL 3.0 HOTLINE TECHNISCHE HOCHSCHULE Fachbereich 1 DARMSTADT Ges o m t b i b I i o t hek B e t r i e b s w i r t s c h a.ttsleh re Invs-', -o-mr Sau.gebiete 42} A^^t "A48JW4 Al-Q.

Mehr

1 Einige Grundbegriffe Einführung in die Programmierung Ausgewählte Sprachelemente von C Arithmetik...

1 Einige Grundbegriffe Einführung in die Programmierung Ausgewählte Sprachelemente von C Arithmetik... Auf einen Blick Auf einen Blick 1 Einige Grundbegriffe... 21 2 Einführung in die Programmierung... 35 3 Ausgewählte Sprachelemente von C... 45 4 Arithmetik... 83 5 Aussagenlogik... 107 6 Elementare Datentypen

Mehr

7 Vererbung. Modul Programmieren mit C++ Kapitel Vererbung

7 Vererbung. Modul Programmieren mit C++ Kapitel Vererbung 7.1 7 Vererbung Eine von der Basisklasse B abgeleitete Klasse A erbt alle Attribute und Methoden von B. Ein Objekt der Klasse A besitzt ein Slice der Klasse B und ein Slice der Klasse A. Jeder Konstruktor

Mehr

Wissenschaftliche Arbeiten schreiben mit WinWord 97

Wissenschaftliche Arbeiten schreiben mit WinWord 97 Natascha Nicol Ralf Albrecht Wissenschaftliche Arbeiten schreiben mit WinWord 97 Formvollendete und normgerechte Examens-, Diplom- und Doktorarbeiten ADDISON-WESLEY PUBLISHING COMPANY An imprint of Addison

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

Programmierung in C/C++

Programmierung in C/C++ Programmierung in C/C++ Mit einer grundlegenden Einführung in die Objektorientierung Univ.-Prof. Hon.-Prof. Dr. Dieter Roller Mit 134 Bildern Kontakt & Studium Band 682 Herausgeber: Prof. Dr. Birgit Baum

Mehr

Vererbung, Polymorphie

Vererbung, Polymorphie Vererbung, Polymorphie Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 21.1.08 G. Bohlender (IANM UNI Karlsruhe) Vererbung, Polymorphie 21.1.08

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

Java-Programmierung mit Visual J++ 1.1

Java-Programmierung mit Visual J++ 1.1 Torsten Schlabach Java-Programmierung mit Visual J++ 1.1 Java verstehen und effektiv nutzen ^ ADDISON-WESLEY An imprint of Addison Wesley Longman, Inc. Bonn Reading, Massachusetts Menio Park, California

Mehr

Inhaltsverzeichnis I Grundlagen...1 II Programmieren in C/C

Inhaltsverzeichnis I Grundlagen...1 II Programmieren in C/C I Grundlagen...1 1 Grundprinzipien der Datenverarbeitung...2 1.1 Historische Entwicklung der Datenverarbeitung...2 1.1.1 Von A wie Abakus bis Z wie Zuse...2 1.1.2 Die Rechnergenerationen...3 1.1.3 Computer

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

Webdesign mit Photoshop 5

Webdesign mit Photoshop 5 Michael Baumgardt Webdesign mit Photoshop 5 Webgrafiken professionell gestalten mit Mac & PC ADDISON-WESLEY An imprint of Addison Wesley Longman, Inc. Bonn Reading, Massachusetts Menlo Park, California

Mehr