13.07.2015 Aufrufe

Einführung in C/C++ - Alex-weingarten.de

Einführung in C/C++ - Alex-weingarten.de

Einführung in C/C++ - Alex-weingarten.de

MEHR ANZEIGEN
WENIGER ANZEIGEN
  • Keine Tags gefunden...

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

10 KAPITEL 1. PROGRAMMIEREN IN C/<strong>C++</strong><strong>de</strong>n. Zwei Schlagwörter kamen auf: Objektorientierung und Software Eng<strong>in</strong>eer<strong>in</strong>g. Entklei<strong>de</strong>tman sie <strong>de</strong>r merkantilen Übertreibungen, bleibt immer noch e<strong>in</strong> brauchbarer Kernvon I<strong>de</strong>en übrig.Der Typbegriff wur<strong>de</strong> zur Klasse erweitert. E<strong>in</strong>e Klasse enthält Variable und zugehörigeFunktionen, die nun Metho<strong>de</strong>n genannt wer<strong>de</strong>n. Klassen können im Gegensatz zumTyp vom Programmierer <strong>de</strong>f<strong>in</strong>iert wer<strong>de</strong>n. Sie bil<strong>de</strong>n e<strong>in</strong>e Hierarchie, wobei höhere KlassenEigenschaften an niedrigere vererben. Klassen haben e<strong>in</strong>e genau <strong>de</strong>f<strong>in</strong>ierte Schnittstelle (Interface)zum Rest <strong>de</strong>s Programms, ihr Innenleben bleibt verborgen. Was sie tun, ist bekannt,wie sie es tun, geht nieman<strong>de</strong>n etwas an. Diese scharfe Trennung von Innen und Außen istwesentlich für <strong>de</strong>n Klassenbegriff. Was für C Funktionsbibliotheken s<strong>in</strong>d, das s<strong>in</strong>d für <strong>C++</strong>Klassenbibliotheken. Die Programmierarbeit besteht zu e<strong>in</strong>em großen Teil im Schreiben vonKlassen. Wie e<strong>in</strong>e Variable die Verwirklichung (Realisierung, Instantiierung) e<strong>in</strong>es Typs ist,so ist e<strong>in</strong> Objekt e<strong>in</strong>e Instanz e<strong>in</strong>er Klasse. Von e<strong>in</strong>er Klasse können beliebig viele Objekteabgeleitet wer<strong>de</strong>n. Klassen und <strong>de</strong>ren Objekte s<strong>in</strong>d die Bauste<strong>in</strong>e e<strong>in</strong>es objektorientiertenProgramms. <strong>C++</strong> hieß anfangs C mit Klassen.Neben <strong>C++</strong> ist e<strong>in</strong>e zweite objektorientierte Erweiterung von C entstan<strong>de</strong>n, die unter <strong>de</strong>mNamen Objective C <strong>in</strong> Verb<strong>in</strong>dung mit <strong>de</strong>m Betriebssystem NeXT e<strong>in</strong>e gewisse Verbreitunggefun<strong>de</strong>n hat. Der GNU-C-Compiler unterstützt sowohl <strong>C++</strong> wie Objective C, ansonsten istes ziemlich still gewor<strong>de</strong>n um diese Sprache.Es kommen noch e<strong>in</strong> paar D<strong>in</strong>ge h<strong>in</strong>zu, um das Programmieren zu erleichtern, aber dasWesentliche am objektorientierten Programmieren ist, dass die Aufgabe nicht mehr <strong>in</strong> Modulezerlegt wird, die aus Anweisungen bestehen, son<strong>de</strong>rn <strong>in</strong> vone<strong>in</strong>an<strong>de</strong>r unabhängige Objekte,die sich Mitteilungen o<strong>de</strong>r Botschaften schicken. Die Objektorientierung setzt bei <strong>de</strong>rAufgabenanalyse e<strong>in</strong>, nicht erst bei <strong>de</strong>r Umsetzung <strong>in</strong> e<strong>in</strong>e Programmiersprache (Codierung).Wie verhält sich <strong>C++</strong> zu C? Manche sagen, dass <strong>C++</strong> e<strong>in</strong>e neue, von C völlig unabhängigeSprache sei. An<strong>de</strong>re wie<strong>de</strong>rum betrachten <strong>C++</strong> als e<strong>in</strong>e umfangreiche Erweiterung vonC. Auf je<strong>de</strong>n Fall s<strong>in</strong>d die Kenntnisse, die man beim Lernen von C erworben hat, auch <strong>in</strong><strong>C++</strong> nützlich und ke<strong>in</strong>esfalls überholt. <strong>C++</strong>-Compiler übersetzen die meisten C-Programmeanstandslos. Zu fe<strong>in</strong>eren Unterschie<strong>de</strong>n und Unverträglichkeiten siehe DAVID. R. TRIBBLE:http://david.tribble.com/text/cdiffs.htmFür numerische Aufgaben ist <strong>C++</strong> <strong>in</strong> <strong>de</strong>r Universität Karlsruhe um e<strong>in</strong>e Klassenbibliotheknamens C-XSC (Exten<strong>de</strong>d Scientific Calculation) mit Datentypen wie komplexen Zahlen,Vektoren, Matrizen und Intervallen samt <strong>de</strong>n zugehörigen Operationen ergänzt wor<strong>de</strong>n,siehe das Buch von RUDI KLATTE et al.SMALLTALK ist e<strong>in</strong>e von Grund auf neu entwickelte, streng objektorientierte Sprache 9 ,im Gegensatz zu <strong>C++</strong>. JAVA wur<strong>de</strong> von <strong>de</strong>r Firma SUN entwickelt. Hier das Hello-World-Programm <strong>in</strong> JAVA (<strong>in</strong> <strong>C++</strong> lernen wir es <strong>in</strong> Abschnitt 1.62 auf Seite 109 kennen):class HelloWorld {public static void ma<strong>in</strong> (Str<strong>in</strong>g args[]) {for (;;) {System.out.pr<strong>in</strong>t("Hello World ");}}}Quelle 1.6 : JAVA-Programm Hello, WorldÄhnlichkeiten zu C s<strong>in</strong>d erkennbar, die JAVA-Entwickler waren vermutlich C-Programmierer.Auf die übrigen 989 Programmiersprachen 10 soll aus Platzgrün<strong>de</strong>n nicht e<strong>in</strong>gegangenwer<strong>de</strong>n. Braucht man überhaupt mehrere Sprachen? E<strong>in</strong>ige Sprachen wie FORTRAN und9 SMALLTALK ist ungewohnt und sehr <strong>in</strong>teressant, auch für LINUX verfügbar.Näheres siehe www.software.ibm.com/ad/smalltalk/, www.exept.<strong>de</strong>/,www.cetus-l<strong>in</strong>ks.org/oo_smalltalk.html o<strong>de</strong>r www.gsug.org/.10 Real programmers can write FORTRAN programs <strong>in</strong> any language.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!