1 / 38

C++

Seminar Programmiersprachen 26.06.2010. C++. Sigita Andrulyte. Überblick. 1. Grundlagen C++. Grundlagen C++ 99 Bottles C++ Erfinder: Bjarne Stroustrup Interview. Was bedeutet C++?. 1. Grundlagen C++. A) Der Name hat keine besondere Bedeutung

chynna
Download Presentation

C++

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Seminar Programmiersprachen 26.06.2010 C++ Sigita Andrulyte

  2. Überblick 1 Grundlagen C++ • Grundlagen C++ • 99 Bottles • C++ Erfinder: Bjarne Stroustrup • Interview

  3. Was bedeutet C++? 1 Grundlagen C++ A) Der Name hat keine besondere Bedeutung B) Der Name ist eine Kombination aus C und dem Inkrementor ++ C) Der Name steht für C plus objektorientierten Konzepten D) Der Name steht für C plus, also ein besseres C (wie eine Eins plus eine bessere Schulnote ist eine Eins)

  4. Was bedeutet C++? 1 Grundlagen C++ FALSCH: C) Der Name steht für C plus objektorientierten Konzepten D) Der Name steht für C plus, also ein besseres C (wie eine Eins plus eine bessere Schulnote ist eine Eins) RICHTIG: B) Der Name ist eine Kombination aus C und dem Inkrementor ++

  5. Was ist C++? 1 Grundlagen C++ • C++ ist eine universelle Programmiersprache, die vorzugsweise zur Systemprogrammierung dient. • Ist ein besseres C (nach B.Stroustrup) • Unterstützt Datentransaktion • Unterstützt objektorientiertes Programmieren und • Unterstützt genetisches Programmieren.

  6. Unterschiede zwischen C und C++? 1 Grundlagen C++ • C ist: • Leistungsfähig: effizient, schnell, logisch, strukturiert • C++: verbesserte C • Erwartungen sind immer größer • OO • C++ ist Erweiterung von C • Sollte man mit C oder C++ anfangen?

  7. Unterschiede zwischen Obj - C und C++? 1 Grundlagen C++ • Obj C: • BOOL= YES oder BOOL=NO • Kommentare: /* . . . */ und // • Attribute und Methoden

  8. Welche Normen hat C++? 1 Grundlagen C++ • ISO/IEC 14882 Informationstechnik – Programmiersprachen • Die Norm beschreibt die objektorientierte Variante der Programmiersprache C. • Implementierung • Stand. Bibliotheken

  9. Welche Normen hat C++? 1 Grundlagen C++ • ISO/IEC 10514-2 Erweiterung zu Modula • ISO/IEC 10514-3 Objekt orientiertes Modula

  10. Vorteile von C++ 1 Grundlagen C++ • Vorteile von C++ • Ermöglicht schnelle und maschinennahe Implementierungen • Gut geeignet für Simulationen, Suchverfahren, • Kompressionsverfahren, zeitkritische Anwendungen • Für umfangreiche Projekte geeignet • Sehr weite Verbreitung

  11. Nachteile von C++ 1 Grundlagen C++ • Probleme: • Teilweise veraltet • Standardbibliothek weniger mächtig als bei Java • Kaum ein Compiler erfüllt die komplette Umsetzung der ISO – Norm • C++ ist relativ schwierig zu erlernen (längere Einarbeitungszeit nötig) • Dennoch: weit verbreitet, besonders bei • wissenschaftlichen Anwendungen

  12. C++ Aplications 1 Grundlagen C++ • NASA • NOKIA • Siemens • Games: Doom III • Adobe Systems • Ericsson • Apple • Amazon.com • IBM • IPod

  13. Objekte 1 Grundlagen C++ • Ein Software-Objekt ist ein Bündel aus Attributen und darauf bezogenen Methoden. • Fahrrad – Objekt • Attribute – Farbe, Größe, momentane Geschwindigkeit • Methoden – fährt leichter

  14. Objektlebenszyklus 1 Grundlagen C++ • Der Lebenszyklus eines C++ Objektes besteht aus den Abschnitten • Erzeugung • Benutzung • Zerstörung

  15. Objektlebenszyklus 1 Grundlagen C++ • Erzeugung • Das Erzeugen eines Objektes erfogt durch Aufruf des Konstruktors (kurz ctor) des Objektes. • Benutzung • Ein Objekt wird benutzt, indem eine seiner Methoden aufgerufen wird

  16. Objektlebenszyklus 1 Grundlagen C++ • Zerstörung • Wird ein Objekt nicht mehr benötigt, so sollte es zerstört werden, damit es keinen Speicherplatz mehr verbraucht. Bei der Zerstörung eines Objektes wird automatisch sein Destruktor (kurz dtor) aufgerufen.

  17. Vererbung 1 Grundlagen C++ • Klasse • Verschiedene Arten • Die Klassen Montainbikes, Rennräder und Hollandräder erben von der Klasse Fahrräder gemeinsame Eigenschaften und fügen zusätzliche hinzu.

  18. Vererbung 1 Grundlagen C++ • Allgemein gilt: • Klassen können definiert werden in Abhängigkeit von anderen Klassen: "A ist eine Art von B". In diesem Fall ist B die Basisklasse von A. • Eine Klasse kann auch von mehrerenKlassen erben: A ist eine Art von B und C (Mehrfachvererbung). • Jede Klasse erbt die (öffentlichen) Attribute und Methoden ihrer Basisklasse(n). • Jedoch können jeder Klasse eigene Variablen und Methoden hinzugefügt werden.

  19. Entwicklungsumgebungen 1 Grundlagen C++ • Windows: • Microsoft Visual C++ • Borland C++ • CYGwin (Linux-artige Umgebung für Windows) • Linux/Unix: • GCC (GNU C Compiler) • G++ (GNU C++ Compiler)

  20. 99 Bottles 1 Grundlagen C++ 2 99 Bottles

  21. 99 Bottles 1 Grundlagen C++ 2 99 Bottles

  22. 99 Bottles 1 Grundlagen C++ 2 99 Bottles

  23. 99 Bottles Ausgabe 1 • 3 bottles of beer on the wall. • 3 bottles of beer on the wall, • 3 bottles of beer, • Take one down, pass it around, • 2 bottles of beer on the wall. • 2 bottles of beer on the wall, • 2 bottles of beer, • Take one down, pass it around, • 1 bottle of beer on the wall. • 1 bottle of beer on the wall, • 1 bottle of beer, • Take one down, pass it around, • 0 bottles of beer on the wall. • 0 bottles of beer on the wall, • 0 bottles of beer, • Go to the store and buy some more, • 99 bottles of beer on the wall. Grundlagen C++ 2 99 Bottles

  24. Bjarne Stroustrup 1 Grundlagen C++ 2 99 Bottles 3 C++ Erfinder • 11. Juni 1950 in Århus, Dänemark • Doktorgrad in Informatik (1979) von der Universität Cambridge, England • 1979-2002 Leiterder AT&T Lab’s Large-scale Programming Research Abteilung, • 1979-2002 Manager bei der Bell Labs • 1993 erhielt er für seine Arbeit um C++ den • Grace Murray Hopper Award.

  25. Bjarne Stroustrup 1 Grundlagen C++ 2 99 Bottles 3 C++ Erfinder • Derzeit: College of Engineering – Lehrstuhl für Informatik, Texas A&M University • Mitglied U.S. National Academy of Engineering • Buch: Die C++ Programmiersprache (1987-2000) – das Buch wurde in 18 Sprachen übersetzt • Mehr als 100 akademische Artikel veröffentlicht • Er spielte eine aktive Rolle beim Erstellen des • ANSI/ISO – Standards für C++

  26. Warum C++? 1 Grundlagen C++ • Simula – „die allerdings in der Praxis recht langsam bei der Ausführung ist“ • BCPL – „die zwar sehr schnell ist, aber sich für große Projekte nicht eignete“ 2 99 Bottles 3 C++ Erfinder 4 Interview

  27. Sicherheit ist nicht Softwarethema! 1 Grundlagen C++ • ”Zunächst einmal ist Sicherheit ein Systemthema” • Perfekte Code • Zugriff auf Ihre gespeicherte Daten • „Zweitens ist Sicherheit ein Abwägen zwischen Kosten und Vorteilen“ • Perfekte Sicherheit: nicht zu erreichen • ”Böse Buben” 2 99 Bottles 3 C++ Erfinder 4 Interview

  28. Sicherheit ist nicht Softwarethema! 1 Grundlagen C++ 2 99 Bottles • ”Aber was ist mit Programmiersprachen und Programmiertechniken?” • Fehler: Jede einzelne Zeile muss sicher sein • Code wird mit unsystematischen Tests überhäuft • Code: hässlich, umfangreicher, langsam • Hardware/Software • Code: einfach, effizient schreiben 3 C++ Erfinder 4 Interview

  29. Muss man nicht C können um mit C++ anzufangen? 1 Grundlagen C++ • ”Leider wird in vielen Kursen zunächst C unterrichtet, aber das ist nicht mehr zwingend der Fall” • Manche wechseln von C nach C++ • OOP 2 99 Bottles 3 C++ Erfinder 4 Interview

  30. Werden wir C++ 2.0 sehen? 1 Grundlagen C++ 2 99 Bottles • ”Ich weiß es nicht” • Das von Grund auf neu entwickelt wurde • Das Beste von C++ enthält • Das Schlechteste weglässt • C++0x • Standardbibliotheken, neue Sprachfeatures • 100% kompatibel zu C++ 98 3 C++ Erfinder 4 Interview

  31. Werden wir C++ 2.0 sehen? 1 Grundlagen C++ 2 99 Bottles • C++0x: • Unterstützung von modernen Maschinenarchitekturen und Nebenläufigkeit • Bessere Unterstützung der genetischen Programmierung • Viele ”kleine” Spracherweiterungen • Neue Standardbibliotheken: • Reguläre Ausdrücke • C++ Standards Committee 3 C++ Erfinder 4 Interview

  32. Warum hat er keine andere Sprachen erstellt? 1 Grundlagen C++ 2 99 Bottles • ”Welches Problem würde die neue Sprache lösen?” • ”Für wen würde sie die Probleme lösen?” • „Was dramatisch Neues könnte angeboten werden?“ • „Könnte die neue Sprache effektiv verbreitet werden?“ 3 C++ Erfinder 4 Interview

  33. Lehren 1 Grundlagen C++ 2 99 Bottles • Einführung in die Programmierung für C++ ”Das ist mein erstes Buch für Anfänger” • AT&T • Änderung • Forschung im Informatikbereich • Mehr als 1.200 Anfänger in Programmieren unterrichtet • Gute Grundlage für das weitere Lernen 3 C++ Erfinder 4 Interview

  34. Wie ist Ihre Meinung zu Codebeispielen in Lehrbüchern? 1 Grundlagen C++ 2 99 Bottles • ”Ich bevorzuge Beispiele, die in so wenig Zeilen wie möglich eine Idee darstellen.” • Programmfragmente sind unvollständig • Alle Codebeispiele in kompilierbarer Form • Keine hübschen künstlichen Beispiele • Beispiele ohne den Missbrauch von Tieren 3 C++ Erfinder 4 Interview

  35. Teamarbeit 1 Grundlagen C++ 2 99 Bottles • Schneller • Besser • Weiter kommt als alleine • Denn 4,8,16 Augen sehen besser 3 C++ Erfinder 4 Interview

  36. Fazit 1 Grundlagen C++ 2 99 Bottles • C++ • Sehr weite Verbreitung • Maschinennahes Programmieren • Für umfangreiche Projekte geeignet 3 C++ Erfinder 4 Interview

  37. Literatur 1 Grundlagen C++ 2 99 Bottles • Visionäre der Programmierung: Die Sprachen und ihre Schöpfer, Federico Biancuzzi, Shane Warden - 2009 • C++ von A bis Z: das umfassende Handbuch, Jürgen Wolf - 2006 • Die C++ Programmiersprache, Bjarne Stroustrup - 2000 • C++: Programmieren mit einfachen Beispielen; leicht, klar, sofort, Dirk Louis - 2006 • C++: der leichte Einstieg, Peter Wollschlaeger – 2003 • http://chachatelier.fr/programmation/fichiers/cpp-objc-en.pdf 3 C++ Erfinder 4 Interview

  38. C++ 1 Grundlagen C++ • Danke für Ihre Aufmerksamkeit! 2 99 Bottles 3 C++ Erfinder 4 Interview

More Related