Sie sind auf Seite 1von 6

Harald Nahrstedt

C++ fUr Ingenieure

Grundlagen Maschinenbau Lehrsystem Technische Mechanik mit lehrbuch, Aufgabensammlung, losungsbuch sowie Formeln und

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 stedt

lehrwerk Roloff/Matek Maschinenelemente von H. Witt el, O. Muhs, D. Jannasch und J. VoBiek

Praktische Regelungstechnik von W. Schneider

Werkstoffkunde

von W. WeiBba ch

www.viewegteubner.de

----.

Harald Nahrstedt

C++ fur

Ingenieure

Effizient Programmieren erlernen Mit 157 Abbildungen und 70 Tabelien

STU DIUM

VIEWEG+

TEUBNER

Bibliogralische Information der Deutschen Nationalbibhothek Die Deutsche Nationalbibliothek verzeichnet diese Publikancn in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet fiber <hll p:j jd nb.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 ee schuesuch aller seiner Iaila Verwer tung au Rerha lb der eoge n Grenzen

Zustimmung des Verlags unzuliissig und stralbar. Das gill insbesondere tur Vervielfaltigungen, Obersetzungen, Mikroverfilmungen und die Einspeicherung

und Verarbeitung in etekrrcnec nen Systemen.

Die Wied ergabe von Gebrauchsnamen, Hande lsname n, Warenbezeichnungen usw. in diesem Werk 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 jedermann benutzt werden ournen.

lst urheberrechtlich geschctzt. jede

des Urheberrechtsgesetze s ist ohne

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

ISBN 978-3-8348-0464-8

v

Vorwort

lVaru", dieses Such

Die erfofgrciche Hcrausgabc cines Buches fiber Excel und VBA mit dcr Kopp lung von Lchrsroff und

Anwcn dungsbeispiclen aus dcm lngcnicurbcreich und "ide crfrculiche Zuschri llcn waren

M Ol or zur

d

'f

IiM d lung dieses lJuc hes. Auc h hi

soli,," sowohl dcm Ingcnicurstud

'Tll

n als auc h dcm praktL.ic

~nden

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 Program me fUr cine solide na si" eige-

ncr Prop"ammenl wid .lung und cinfache Anwendungsbeispie le Iur cine J?Ule Gnmdlag e fU r cig me Tests ,

Ich habe vcrsuch t, 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

Ililfen und Themen emstenen

Ili/fen

Zur Ers tclhmg do

Programme babe ich ein EntwickhmgswerkJ'ctlg von Bloodshed Software

(hnp·lIwww.bloodshe d.pct)benutzt. Esisl eine Free Software Foundation und ihre Entwicklungsumge- bung enthill &'11 GNU Compiler. dL'I" zur freicn Nutzung auch in viclen andcren Emw icklungsumgcbc n- gen zu li nden ist. w egen der Scbnctllebigkeit in diesem Bereich verweise ich an dicser Std le ebenfalls auf meine Website (sjche uetem. in der ich weirere Hinweise einsrellen werdc . Dort lindo.'t dcr Leser aoch dL'1I Quellte\t &'1" Pro gramme 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, da s durch seine ein fache GestahWlgund kom ple 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; ctwas mchr ein fhhrendcn 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 metst mit cmcm Anwcndungs bcispicl. Die

A nw L"Tldunl,~he ispiele greifcn das Thema dann auf und'odcr dicncn als Vorlage zur Umsctzung des lemten.

flrr

Ge-

J)l1nksagli nK

Ieh bcdankc mich bci all dcncn im Hause Vicwcg e'Teubncr, die stcts irn llimc rgrund wirkcnd. zum Gc -

Ein bc,onderer Dank gilt meinem Leklor T homas Zipsner, der

mir in lreulldschlllilichcr 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:klorals Teehnik waren

Hlr rnich sehr hill i"eich.

[)lll1ken mochte ich auBerdem ltllen Kolleginnen und Kollegcn der I'imla seneos Gmhll , Kl'lln. die llir mich cine hcrulliehe !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 lo rtsehri" lichen Slrehcn slchl hk'f der nL'lle und menso:hliehc Umgang an erstl'f Stelle und iSI damit die Ba, i, des Erlo lgs.

ling-en dicscs Huchcs bcigcuagcn habcn.

An den Leser

Dieses Uuch soll ilueh Lum Dialog zwischen Aulor Wld Leser alilTordern . Daher linden Sic sowohl

lIomepage des Vcrla~"S www vjcwegleuhncr,de als auch au f der lI omepage des Aulon www barald-

nahrslclll.de c in f orum Hir erglin/ende Programme. AnregtUlgen. Kezcnsioncn und Kommcnlarc.

auf der

Mohnesce, f ebruar 2009

lIarald Nabrstcdl

VI

Inhaltsverzeichnis

Grund lag{"n der Progr ammierung

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

Prozed urate Programmierung

87

2.1 Der \V e- g zu Losung

87

2.2 Funktionen

 

93

2.3 Parameter

106

2.4 Deklarationen und Gult ig keusber eiche

117

2.5 Zeiger auf Funktionen

132

2.6 Callback-Funktionen

141

3

:\Iodulare Pr earammfcrun g

149

3.

1

:\

todul

e

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

20 1

4

O bjektertenne r te Pro grammicrung

212

4.1

Der Weg zum Objekt

212

4.2 Objekte und Klassen

220

4.3 Spez ielle Objekte 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

30 1

4 .H

Streams und Dareien

3 10

5

Gelll'rischc Pro gramm ierung

322

5.

1

Das Grundprinzip

 

322

5.2 Punktions-Templates

324

5.3 Klassen-Templates

328

Literaturverz clchni s

331

Sa chwortverzeichnis C++ Thcmcn

333

Sachwe rtverzcichnls Inform ali kffec:hnischc Th emcn

336