Sie sind auf Seite 1von 6

Harald Nahrst edt

C++ fUr Ingenieure


Grundlagen Maschinenbau
Lehrsystem Technische Mechanik mit lehrbuch,
Aufgabensammlung, losungsbuch sowie Formeln und Tabellen
von A. Boge und W. Schlemmer
Handbuch Maschinenbau
herausgegeben von A. Sage
Elektrotechnik fflr Maschinenbauer
von R. Busch
Technische Berichte
von H. Hering und L. Hering
Englisch fUr Maschinenbauer
von A. Jayendran
Excel+VBA fUr Maschinenbauer
von H. Nahr st edt
lehrwerk Roloff/Matek Maschinenelemente
von H. Wittel, O. Muhs, D. Jannasch und J. VoBiek
Praktische Regelungstechnik
von W. Schneider
Werkstoffkunde
von W. WeiBbach
www.viewegteubner.de ----.
Harald Nahrstedt
C++ fur
Ingenieure
Effi zient Programmieren erlernen
Mit 157 Abbi ldungen und 70 Tabeli en
STUDIUM
VIEWEG+
TEUBNER
Bibliogralische Information der Deutschen Nat ionalbibhothek
Die Deutsche Nationalbibliothekverzeichnet diese Publikancn in der
Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet fiber
<hllp:jjdnb.d-nb.de> abnrtbar.
1. Aullage 2009
Aile Rechte vorbehalten
C Vieweg+Teubner I GWVFachverlage GmbH, Wiesbaden 2009
Lektorat : Thomas Zipsner I rmke Zander
Vieweg+Teubner ist Teil der Fachvenagsgruppe Springer Science-Business Media.
www.viewegteubner.de
Das Werk eeschuesuch aller seiner Iaila lst urheberrechtli ch geschctzt. jede
Verwer tung auRerhalb der eogen Grenzen des Urheberrechtsgesetzes ist ohne
Zustimmung des Verlags unzulii ssig und stral bar. Das gill insbesondere tur
Vervielfaltigungen, Obersetzungen, Mikroverfil mungen und die Einspeicherung
und Verarbeitung in etekrrcnecnen Systemen.
Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesemWerk
berechtigt euch chna besondere Kennzeichnung nicht zu der Annahme, dass sclcha Namen im
Sinna der Warenzeichen- und Markenschutz-Gesetzgebung als frei zu betracbten waren und daher
von j edermann benutzt werden ournen.
Umschlaggestaltung: Kunkell opka Medienentwicklung, Heidelberg
Technische Redaknon: Stefan Kreickenbaum, Wiesbaden
Druck und buchbinderische verarbeirung: Krips b.v., Meppel
Gedruckt auf siiurefreiem und chlorfrei gebleichtem Papier.
Printed in the Netherlands
ISBN978-3-8348-0464-8
v
Vorwort
lVaru", dieses Such
Die erfofgrciche Hcrausgabc cines Buches fiber Excel und VBA mit dcr Kopplung von Lchrsroff und
Anwcndungs beispiclen aus dcm lngcnicurbcreich und "ide crfrculiche Zuschri llcn waren d.. 'f MOl or zur
IiM d lung dieses lJuc hes. Auch hi.. ... soli,," sowohl dcm Ingcnicurst ud..'Tll ...n als auc h dcm praktL.ic...
Ingcnseur Wq!c und MOglichkcilC'D der Entwicklu ng eigener Progra mme ge..eigt werden. Dabci gche ich
bewussl iiber einfacbe Slrukturen mcju hinaus. Ich halle einfache Programme fUr cine sol ide nasi" eige-
ncr Prop"ammenl wid .lung und cinfache Anwendungsbeispiele Iur cine J?Ule Gnmdlage fUr cig.. me Tests ,
Ich habe vcrsucht, auf die elegaraen Tricks in C+-+ LU verzictnen, die sich bei naensiver Nutzung und
d""01 weneren Studiurn "on selbst einstejlen. Auf meiner Website werde ich im weitercn Vcrlauf ergsn-
lmd..- I lilfen und Themen emstenen
Ili/fen
Zur Ers tclhmg do...... Programme babe ich ein EntwickhmgswerkJ'ctlg von Bloodshed Software
(hnp lIwww.bloodshed.pct)benutzt. Esisl eine Free Software Foundation und ihre Entwicklungsumge-
bung enthill &'11 GNU Compiler. dL'I" zur freicn Nutzung auch in viclenandcren Emwicklungsumgcbc n-
gen zu li nden ist . wegen der Scbnctllebigkeit in diesem Bereich verweise ich an dicser Stdle ebenfalls
auf mei ne Website (sjche uetem. in der ich weirere Hinweise einsrellen werdc . Dort lindo.'t dcr Leser aoch
dL'1I Quellte\t &'1" Programme aus diescm Bueh.
Zum ."ul nau
Die aufgcfhhrtcn Bcr eiche emsprcchcn der chronologischen Entwicklung de... Prograrnmier ung. Anhand
emfachcr Modcllc versuchc ich dL'1I LeS'-'I" flrr C++;[Ubegcistem, das durch seine ein fache GestahWlgund
komple xcn Ml'lglichleih:Tl bcsticht . Die Kapitel der modularen und prozeduralcn Progra mmi crung babe
ich kurz gcfusst, III Gunsten mreressanrcr Anwendengsbeispiele. Zum Thema objek toriemiene Program-
mierung habc ich d;..flrr ctwas mchr einfhhrendcn Text verwcndct . Ieh hoffc. dass der Leser ausreichcnd
und meuvicn dcm Theme folgcn kann. 1m lctztcn Kapitcl zur gcnc rischcn Prograrnmicrung gcbc ich
cincn kurzcn liinblick in zuknnffigc Bctrachnm gen und Anwcndungen. Die eiwclnen Kapitcl bcginnen
mil emcm rheorcrischcn Teil zum Thema C++ und cndcn met st mit cmcm Anwcndungs bcispicl. Die
greifcn das Thema dann auf und'odcr dicncn als Vorlage zur Umsctzung des Ge-
lemten.
J)l1nksagli nK
Ieh bcdankc mich bci all dcncn im Hause Vicwcge'Teubncr, die stcts irn llimcrgrund wirkcnd. zum Gc-
ling-en dicscs Huchcs bcigcuagcn habcn. Ein bc, onderer Dank gilt meinem Leklor Thomas Zipsner, der
mir in lr eulldschlllilichcr Verbundenheit geduldig mil vielen wichligen lind ri\'hligen Kalschlagen half.
den Itir den Leser hesten Weg ein/uhalten. Seine Erfahrllngen ai, Chellel tor des Lo:kl orals Teehnik waren
Hlr rnich sehr hilli"eich.
[)lll1ken mochte ich auBerdem ltllen Kolleginnen und Kollegcn der I' imla seneos Gmhll , Kl'll n. die llir
mich cine hcrulli ehe !l eimat hcdeutcl. Es isl immer wiedcr cine Frcude in einem Tcam engltgk'l1cr lnge-
nicure an dcr Losllng technischcr Problemc lei lzuhabcll_Bci allcm lortsehri" lichen Slrehcn slchl hk'f der
nL'lle und menso: hliehc Umgang an erstl'f Stelle und iSI damit die Ba, i, des Erlolgs.
An den Leser
Dieses Uuch soll ilueh Lum Dialog zwischen Aulor Wld Leser alilTordern. Daher linden Sic sowohl auf der
lIomepage des www vjcwegleuhncr,de als auch auf der lI omepage des Aulon www barald-
nahrslclll.de cin f orum Hir erglin/ende Programme. Anregt Ulgen. Kezcnsioncn und Kommcnlarc.
Mohnesce, f ebruar 2009
lIarald Nabrstcdl
VI
Inhaltsverzeichnis
Grundlag{"n der Progr ammi erung 1
1.1 Emwickl ung J
1.2 Grundstrukturen 9
1.3 Datentypen, Variable und Konsrame 19
I A Operatoeen und Ausdracke 31
1.5 Anweisungen 48
1.6 Felder 58
1.7 Zeiger auf Datentypen 67
1.8 Zeicbenkeuen 77
2 Prozedurate Programmierung 87
2. 1 Der \ Ve-g zu Losung 87
2.2 Funktionen 93
2.3 Parameter 106
2.4 Deklarationen und Gult igkeusbereiche 117
2.5 Zeiger auf Funktionen 132
2.6 Callback-Funkt ionen 141
3 :\Iodulare Pr earammfcrung 149
3. 1 :\..todule 149
3.2 Srrukturen 158
3.3 Verbunde 168
3.4 Zeiger auf Strukturen 178
3.5 Verken ete Listen 189
3.6 Dynamische Speicherung 201
4 Obj ektertenne r te Programmicrung 212
4. 1 Der Weg zum Obj ekt 212
4.2 Obj ekte und Klassen 220
4.3 Spez ielle Obj ekte und Met hoden 238
4.4 Klassenhierarchie lind Vererbung 257
4.5 Virtuelle Funktionen 272
4.6 Streams 288
4.7 Ein- und Ausgabe von Strings 301
4.H Streams und Dareien 310
5 Gelll' r ischc Programmierung 322
5. 1 Das Grundprinzip 322
5.2 Punktions-Templates 324
5.3 Klassen-Templates 328
Lit eraturverzclchni s ..
Sa chwortverzeichnis C++ Thcmcn ..
331
333
Sachwe rtverzcichnls Informali kffec:hnischc Th emcn 336