13
Axel Kotulla Das Vieweg Buch zu Borland C+ + 3.0 Objektorientierte DOS- und Windowsprogrammierung

Das Vieweg Buch zu Borland C+ + 3 - link.springer.com978-3-322-91962-5/1.pdf · VI Borland C++ integriert wurde. Mit ihr konnen fensterorientierte Pro gramme unter DOS nicht mehr

  • Upload
    donhan

  • View
    213

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Das Vieweg Buch zu Borland C+ + 3 - link.springer.com978-3-322-91962-5/1.pdf · VI Borland C++ integriert wurde. Mit ihr konnen fensterorientierte Pro gramme unter DOS nicht mehr

Axel Kotulla

Das Vieweg Buch zu Borland C+ + 3.0

Objektorientierte DOS- und Windowsprogrammierung

Page 2: Das Vieweg Buch zu Borland C+ + 3 - link.springer.com978-3-322-91962-5/1.pdf · VI Borland C++ integriert wurde. Mit ihr konnen fensterorientierte Pro gramme unter DOS nicht mehr

Aus dem Bereich Computerliteratur

Effektiv Starten mit Turbo C++ von Axel Kotulla

Turbo Pascal 6.0 von Martin Aupper1e

Arbeitan mit MS-DOS QBasic von Michael Halvorson und David Rygmyr (Ein Microsoft PressNieweg-Buch)

Microsoft BASIC PDS 7.1 von Frederik Ramm

Effektiv Starten mit Visual Basic von Dagmar Sieberichs und Hans-Joachim KrOger

Das Vieweg Buch zu Borland C++ 3.0 von Axel Kotulla

MS-DOS Profi Utilities mit Turbo Pascal von Georg Fischer

100 Rezepte fur Turbo Pascal von Erik Wischnewski

Objektorientiert mit Turbo C++ von Martin Aupper1e

Effektiv Starten mit Turbo Pascal 6.0 von Axel Kotulla

Grafik und Animation in C von Herbert Weidner und Bemhard Stauss

Vieweg

Page 3: Das Vieweg Buch zu Borland C+ + 3 - link.springer.com978-3-322-91962-5/1.pdf · VI Borland C++ integriert wurde. Mit ihr konnen fensterorientierte Pro gramme unter DOS nicht mehr

Axel Kotulla

Das Vieweg Buch zu Borland C++ 3.0

Objektorientierte D05- und Windowsprogrammierung

II Vleweg

Page 4: Das Vieweg Buch zu Borland C+ + 3 - link.springer.com978-3-322-91962-5/1.pdf · VI Borland C++ integriert wurde. Mit ihr konnen fensterorientierte Pro gramme unter DOS nicht mehr

Daa in dicsem Buch enthaltene Programm-Material ist mit keiner Verpffichtung oder Garantie ir­gendeiner Art verbunden. Ocr Autor und der Verlag iibernehmen infolgedessen keine Verantwor­tung und werden keine daraua folgende oder sonatige Haftung iibernehmen, die auf irgendeine Art aU8 der Bcnutzung dieses Programm-Materials oder Teilen davon entsteht.

AIle Rcchte vorbehalten o Friedr. Vicweg & Sohn Verlagsgesellschaft mbH, BraunschweiglWiesbaden, 1992

Der Verlag Vieweg ist ein Unternehmen der Verlagsgruppe Bertelsmann International.

Das Werk einschlielUich aller seiner Teile ist urheberrechtlich geschiitzt. Jede Verwertung auBerhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne Zuatimmungen des Verlags unzulissig und strafbar. Das gilt insbesondere fUr Vervielfiltigungen, Obersetzungen, Mikroverfllmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen.

Um8chlagsgcstaltung: Schrimpf & Partner, Wiesbaden

Gedruckt auf siurefreiem Papier

ISBN 978-3-322-91963-2 ISBN 978-3-322-91962-5 (eBook)

DOI 10.1007/978-3-322-91962-5

Page 5: Das Vieweg Buch zu Borland C+ + 3 - link.springer.com978-3-322-91962-5/1.pdf · VI Borland C++ integriert wurde. Mit ihr konnen fensterorientierte Pro gramme unter DOS nicht mehr

Vorwort

Die Programmiersprache C++ und die Benutzeroberflache MS- Windows entwickeln sich mehr und mehr zu den herausragenden Vertretern auf dem Gebiet der IBM- (kompatiblen) Computer. Leider sind die objektorientierte Programmierung in C++ und die Erstellung von Windows-Programmen mit dem Ruf behaftet, sie seien kompliziert und ftir den Anfanger kaum zu erlernen.

Diesen Vorurteilen soIl mit dies em Buch begegnet werden. Wegen der klar gegliederten, leicht verstandlich gehaltenen Darstellung kann es sehr gut als Lehrbuch (auch flir ein Selbststudium) verwendet werden. Es setzt keine Vorkenntnisse in anderen Programmiersprachen voraus.

Erfahrene Programmierer konnen das Buch auch als Nachschlagewerk nutzen. 1m umfangreichen Stichwortverzeichnis findet man rasch HiIfe.

1m Unterschied zu vielen anderen Werken mit dem Thema C bzw. C++ und Windows wird hier der Ansatz einer objektorientierten Program­mierung konsequent verfolgt. Dies gilt auch ftir die Programmierung unter Windows. Dort wird gezeigt, wie man verschiedene Windows-Objekte in Klassen zusammenfafit und sie somit leicht in spateren Programmen wiederverwenden kann.

Insgesamt ist der Text in vier grofie Abschnitte unterteilt. Lediglich der erste geht speziell auf Borland C++ ein. Es wird gezeigt, wie man den Compiler installiert und moglichst effektiv mit der Entwicklungsumge­bung arbeitet. Zahlreiche Abbildungen untersttitzen die Darstellung.

AIle nachfolgenden Abschnitte konnen in grofien Teilen auch mit anderen C++-Compilern nachvollzogen werden. Dabei geht es im zweiten um die Grundlagen von C++. Dort wird C++ nicht wie so oft als "Aufsatz" auf die Programmiersprache C sondern als eigene Sprache behandelt. Dadurch werden dem Leser einige C-Konstruktionen erspart, die in C++ durch machtigere ersetzt wurden. Wer bereits in C programmiert hat, wird an diversen Stellen auf Parallelen hingewiesen.

Der dritte Abschnitt behandelt einige interessante Algorithmen in C++. Es wird gezeigt, wie man Daten sortiert und sucht. Ferner wird das Prinzip der Rekursion erlautert und eine effiziente Strategie zur Speicherung grofier Datenmengen vorgestellt. Den Abschlufi bildet eine Einflihrung in die Turbo Vision, die nach ihrem Erfolg unter Turbo Pascal nun auch in

Page 6: Das Vieweg Buch zu Borland C+ + 3 - link.springer.com978-3-322-91962-5/1.pdf · VI Borland C++ integriert wurde. Mit ihr konnen fensterorientierte Pro gramme unter DOS nicht mehr

VI

Borland C++ integriert wurde. Mit ihr konnen fensterorientierte Pro­gramme unter DOS nicht mehr nur von C++-Spezialisten programmiert werden.

Der letzte Abschnitt widmet sich dann voIlkommen der Windows-Program­mierung. Ausgehend von einem sehr einfachen Beispiel wird spielerisch eine grofiere Anwendung entwickelt. Sie soIl als Vorbild flir eigene Programme dienen. Am Ende dieses Abschnittes wird auf ein Zusatzwerkzeug von Borland mit dem N amen Object Windows eingegangen. Mit diesem erspart man sich die Erstellung einer eigenen Klassenbibliothek und kann direkt auf zahlreiche, nlitzliche Routinen zurlickgreifen.

Bereits kurz nach dem Erscheinen der Version 2.0 hat Borland die Nummer 3.0 auf den Markt gebracht. Der wesentliche Unterschied besteht darin, dafi die neue Version eine Entwicklungsumgebung als Windows-Applikation enthaIt. Die OberfHichen unter DOS wei sen kaum Unterschiede auf. AIle Programme konnen problemlos auch mit der alteren Version libersetzt werden. Die Kompilation von Windows-Programmen gestaltet sich ohne Windows- Entwicklungsumgebung ein wenig komplizierter. Desweiteren konnen die Windows-Programme auch mit Turbo C++ fur Windows bear­beitet werden. Die einzelnen Pakete aus dem Hause Borland unterscheiden sich im wesentlichen in der Anzahl der mitgelieferten Hilfsmittel. So gehort zu Borland C++ 3.0 in der professionellen Version das Paket Object Windows. Mit Turbo C++ fur Windows konnen keine DOS­Programme entwickelt werden.

Das Paket Borland C++ ist eine Kombination aus Turbo C++ und Turbo C++ fur Windows. Wer diese beiden separaten Programme besitzt, kann demnach alle in dies em Buch vorgestellten Beispiel nachvoIlziehen und aIle Ubungen bearbeiten.

Folgende Ubersicht fafit die Anwendung der verschiedenen Compiler in den einzelnen Abschnitten zusammen:

Borland C++: AIle Abschnitte.

Turbo C++: Abschnitte 2 und 3 vollstandig, im Abschnitt 1 konnen die meisten Angaben problemlos in die Entwicklungsumgebung von Turbo C++ libernommen werden.

Turbo C++ fur Windows: Abschnitt 4. Die Programme der Abschnitte 2 und 3 konnen durch eine spezielle Option als Windows-Anwendung erstellt werden.

Page 7: Das Vieweg Buch zu Borland C+ + 3 - link.springer.com978-3-322-91962-5/1.pdf · VI Borland C++ integriert wurde. Mit ihr konnen fensterorientierte Pro gramme unter DOS nicht mehr

vii

Zortech C++: Abschnitte 2, 3 und 4.

Innerhalb des Textes findet man neben zahlreichen Abbildungen und tabellarischen Ubersichten hervorgehobene Absatze. Zu letzteren gehoren alle C++-Programmtexte. Sie sind zeilenweise numeriert, um sich bei der Erklarung leichter auf bestimmte Stellen beziehen zu konnen. Falls Sie die Texte iibernehmen wollen, diirfen Sie die Zeilennummern nicht einge­ben. Da sich jedoch alle vorgestellten Programme auf der beiliegenden Diskette befinden, ist ein Abschreiben sowieso nicht notwendig.

Eine weitere Hervorhebung betrifft Hinweise. Sie sind etwas kleiner ge­setzt und sollen zusatzliche Informationen zum gerade behandelten Thema geben. An einigen Stellen findet man beispielsweise Hinweise fiir C­erfahrene Programmierer oder sonstige Anmerkungen, die von einem Neu­ling nicht unbedingt verstanden werden miissen. Fiir den Text hinter dem Hinweis ist ein Verstandnis nicht unbedingt notig. Hinweise sollen Erganzungen liefern.

d" Dies ist beispielsweise ein Hinweis.

Vor allem im erst en Abschnitt wird an zahlreichen Stellen dazu aufgefor­dert, bestimmte Tastenkombinationen zu driicken. Dabei ist die Notation folgendermafien zu verstehen: Sind zwei Tasten durch ein Plus-Zeichen (+) voneinander getrennt, so sollen sie gleichzeitig gedriickt werden, also etwa I Alt I + [IT] . Sind Tasten dagegen durch Kommas (,) voneinander getrennt, ist eine nacheinander folgende Betatigung gemeint, also zum Beispiel [KJ, [ill. Bei der Beschriftung der Tasten wurde von der in Deutschland inzwischen allgemein verbreiteten deutschen Tastatur ausgegangen. Sollte Ihr Rechner iiber eine englische Tastatur verfiigen, miissen Sie statt I Str! I I Ctrll , statt

I Einf! I ~,statt I Entf I I Dell, statt I Post I I Home I ,statt I Ende I I End I , statt I Bildll @!] und statt I Bild! I I Down I driicken. Die Tabulatortaste ist zwar auf einer deutschen Tastatur mit zwei gegenlaufigen Pfeilen beschriftet, wird hier aber aus technischen Griinden mit I Tab I bezeichnet. Gleiches gilt fiir die Taste zum Umschalten auf Grofibuchstaben. Diese heifit hier I Shift I . AIle im folgenden vorgestellten Programme wurden eigenhandig unter Bor­land C++ getestet. Eine Garantie fiir ihre Korrektheit kann allerdings nicht iibernommen werden.

Page 8: Das Vieweg Buch zu Borland C+ + 3 - link.springer.com978-3-322-91962-5/1.pdf · VI Borland C++ integriert wurde. Mit ihr konnen fensterorientierte Pro gramme unter DOS nicht mehr

Vlll

Der Text wurde nach zahllosen Versuchen mit divers en Standard-Textver­arbeitungs- und DTP-Programmen schliefilich in Leslie Lamport's D-TEX bzw. Donald E. Knuth's 'lEX gesetzt. In diesem Zusammenhang gilt mein Dank Herrn Eberhard Matthes dessen Public Domain MS-DOS-Version em'lEX hervorragende Dienste leistete.

Weiterhin gilt mein Dank der Firma Borland, die mir mit Vorabversionen ihrer Programme und niitzlichen Tips tatkraftig zur Seite stand, sowie Herrn Ralf Trimborn der geduldig das gesamte Manuskript Korrektur gelesen hat und dabei so manche "Stilbliite" entfernt hat.

Schliefilich entschuldige ich mich bei allen, denen ich wahrend der Erstellung mit Fragen nach Beispielen und ahnlichem auf die N erven gegangen bin. 1ch hoffe, das Ergebnis war die Miihe wert.

Aachen, im Januar 1992

Axel Kotulla

AIls hisher und nachfolgend genannten Produkt- und Firmennamen sind in der Regel geschiitzte Markenzeichen der entsprechenden Firmen. Sie werden zur Kennzeichnung weiterhin kursiv geschrieben. Auch wenn nicht jedes Mal gesondert darauf hingewiesen wird, sei urn Beachtung gebeten.

Page 9: Das Vieweg Buch zu Borland C+ + 3 - link.springer.com978-3-322-91962-5/1.pdf · VI Borland C++ integriert wurde. Mit ihr konnen fensterorientierte Pro gramme unter DOS nicht mehr

In ha Itsverzeich n is

1 Die Entwicklungsumgebung

1.1 Installation ... . . . . . .

1.2 Vom Quelltext zum Programm

1.3 Ein Spaziergang durch die Menus .

1.4 Die personliche Konfiguration

1.5 Die Hilfsfunktion ...... .

1.6 Tips zum effizienten Arbeiten

2 Der Einstieg in C++

2.1 Elementare Bausteine ........ .

2.1.1 Aufbau eines C++-Programms

2.1.2 Schlusselworte ...... .

2.1.3 Variablen und Konstanten .

2.1.4 Giiltigkeitsbereiche fur Variablen

2.2 Arithmetische Operationen ..

2.2.1

2.2.2

2.2.3

2.2.4

2.2.5

Zuweisungen ..... .

Arithmetische Operatoren .

Implizite und explizite Typumwandlung

Binare Operatoren . . . . . . . . . . . .

Rechnen mit Buchstaben und anderen Zeichen

2.3 Kontrollstrukturen . . . . . . . . . . . .

2.3.1 Einfache Bedingungen mit if-else

1

1

8

17

31

38

42

51

51

54

59

61

70

71

71

73

78

81

86

87

88

Page 10: Das Vieweg Buch zu Borland C+ + 3 - link.springer.com978-3-322-91962-5/1.pdf · VI Borland C++ integriert wurde. Mit ihr konnen fensterorientierte Pro gramme unter DOS nicht mehr

x INHALTSVERZEICHNIS

2.3.2 Vergleichende und logische Operatoren . 90

2.3.3 Mehrfachauswahlen mit switchO 94

2.3.4 Die forO-Schleife . . 98

2.3.5 Die whileO-Schleifen 102

2.3.6 Break und continue 107

2.3.7 Spriinge und Marken. 111

2.4 Strukturierte Programmierung 111

2.4.1 Vordefinierte Funktionen . 112

2.4.2 Eigene Funktionen 118

2.4.3 Speicherklassen . . 127

2.4.4 Externe Variablen und Funktionen 131

2.4.5 Felder und Strings 137

2.4.6 Makros · ..... 147

2.4.7 Weitere Praprozessor-Anweisungen 154

2.4.8 Eigene Datentypen 159

2.4.9 Aufzahlungstypen 162

2.5 Die Welt der Objekte 167

2.5.1 Klassen · . 170

2.5.2 Vererbung . 185

2.5.3 Friends · . 194

2.5.4 Overloading . 195

2.5.5 Mehrfache Vererbung 200

2.5.6 Strukturen, Varianten, Bitfelder 203

2.5.7 Ein- und Ausgabe auch auf Dateien 206

2.5.8 Virtuelle Basisklassen 210

2.5.9 Statische Members . . 213

2.6 Dynamische Speicherverwaltung . 214

2.6.1 Von Zeigern und Adressen . 215

2.6.2 Argumente aus der Kommandozeile 225

Page 11: Das Vieweg Buch zu Borland C+ + 3 - link.springer.com978-3-322-91962-5/1.pdf · VI Borland C++ integriert wurde. Mit ihr konnen fensterorientierte Pro gramme unter DOS nicht mehr

INHALTSVERZEICHNIS xi

2.6.3 Vom Zeiger zur Liste . 230

2.6.4 Zeiger auf Funktionen 251

2.6.5 Zeiger auf Klassen 255

2.6.6 Virtuelle Funktionen 257

2.6.7 Der this-Zeiger 259

3 Algorithmen in C++ 261

3.1 Rekursion ..... 262

3.1.1 Das Prinzip 262

3.1.2 Die Tiirme von Hanoi 270

3.1.3 Backtracking 274

3.2 Sortieren ....... 281

3.2.1 Bubble Sort . 282

3.2.2 Insertion Sort . 287

3.2.3 Quick Sort .. 290

3.2.4 Sortieren auf Dateien 295

3.3 Suchen ........... 301

3.3.1 Sequentielle Suche 301

3.3.2 Binare Suche in Feldern 303

3.3.3 Binare Suche in Baumen . 307

3.3.4 Suche in Dateien .... 328

3.3.5 Suchen in Zeichenketten 329

3.3.6 Generizitat 332

3.4 Die Turbo Vision 336

3.4.1 Vorbereitung 336

3.4.2 Ein erstes Beispiel 337

3.4.3 Die Klassenhierachie 341

3.4.4 Eine Oberflache mit Fenstern 341

3.4.5 Fenster mit Text ....... 352

Page 12: Das Vieweg Buch zu Borland C+ + 3 - link.springer.com978-3-322-91962-5/1.pdf · VI Borland C++ integriert wurde. Mit ihr konnen fensterorientierte Pro gramme unter DOS nicht mehr

Xll INHALTSVERZEICHNIS

4 Windows-Programmierung

4.1 Grundlegende Begriffe ....... .

4.1.1 Einige Worte zur Geschichte

4.1.2 Das Prinzip . . .

4.1.3 Die Ausstattung

4.1.4 Die wichtigsten Begriffe

4.2 Ubersetzen einer Windows - Anwendung

4.2.1 Die verschiedenen Teile ...

4.2.2 Die Ubersetzung unter DOS .

4.2.3 Die Ubersetzung unter Windows

4.2.4 DOS-Programme al~ Windows-Anwendung

4.3 Eigene Windows-Programme ..

4.3.1 Die Datei WINDOWS.H .

4.3.2 Das erste Windows-Programm

4.3.3 Fenster als Objekte ...

4.3.4 Der Ressourcen-Editor .

4.4 Eine gro:6ere Anwendung. . . .

4.4.1 Die einzelnen Programmteile

4.4.2 Schnittstelle zu Windows ..

4.4.3 Die Steuerung des Programms

4.4.4 Ressourcen

4.5 ObjectWindows ..

4.5.1 Installation

4.5.2 Die Klassenhierarchie

4.5.3 Popup-Fenster mit ObjectWindows .

4.6 Ausblick....................

A Entwicklungsumgebung

A.l Startoptionen ...

A.2 Editorkommandos

357

358

358

359

361

363

366

367

371

378

383

385

386

392

394

416

423

424

426

446

456

464

465

468

471

476

479

479

480

Page 13: Das Vieweg Buch zu Borland C+ + 3 - link.springer.com978-3-322-91962-5/1.pdf · VI Borland C++ integriert wurde. Mit ihr konnen fensterorientierte Pro gramme unter DOS nicht mehr

INHALTSVERZEICHNIS xiii

B ASCII Tabelle 485

C ReguIiire A usdriicke 487

D S chI iisselworte 489

E Windows-Ubersichten 491

E.1 Messages .. 491

E.2 Cursorformen 498

E.3 Darstellungsformen von Fenstern 499

EA Typen von Meldungsboxen 500

E.5 Pinsel, Stifte und Fonts 502

Literat urverzeichnis 505

A b bild ungsverzeichnis 507

Stichwortverzeichnis 511