100% found this document useful (1 vote)
20 views61 pages

An Introduction to Programming through C++ Abhiram G. Ranade pdf download

The document is a resource for learning programming through C++, authored by Abhiram G. Ranade. It includes various topics such as object-oriented programming, algorithms, and data types, along with exercises for practice. Additionally, it provides links to other programming-related ebooks available for download.

Uploaded by

jaykepopza
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
20 views61 pages

An Introduction to Programming through C++ Abhiram G. Ranade pdf download

The document is a resource for learning programming through C++, authored by Abhiram G. Ranade. It includes various topics such as object-oriented programming, algorithms, and data types, along with exercises for practice. Additionally, it provides links to other programming-related ebooks available for download.

Uploaded by

jaykepopza
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 61

An Introduction to Programming through C++

Abhiram G. Ranade pdf download

https://ebookmass.com/product/an-introduction-to-programming-
through-c-abhiram-g-ranade/

Explore and download more ebooks at ebookmass.com


We believe these products will be a great fit for you. Click
the link to download now, or visit ebookmass.com
to discover even more!

An Introduction to Parallel Programming 2. Edition Pacheco

https://ebookmass.com/product/an-introduction-to-parallel-
programming-2-edition-pacheco/

Introduction to Java Through Game Development: Learn Java


Programming Skills by Working with Video Games 1st Edition
Victor G. Brusca
https://ebookmass.com/product/introduction-to-java-through-game-
development-learn-java-programming-skills-by-working-with-video-
games-1st-edition-victor-g-brusca/

An Introduction to Parallel Programming. Second Edition


Peter S. Pacheco

https://ebookmass.com/product/an-introduction-to-parallel-programming-
second-edition-peter-s-pacheco/

Gateways to Democracy: An Introduction to American


Government John G. Geer

https://ebookmass.com/product/gateways-to-democracy-an-introduction-
to-american-government-john-g-geer/
Modern C++ for Absolute Beginners: A Friendly Introduction
to the C++ Programming Language and C++11 to C++23
Standards, 2nd Edition Slobodan Dmitrovi■
https://ebookmass.com/product/modern-c-for-absolute-beginners-a-
friendly-introduction-to-the-c-programming-language-
and-c11-to-c23-standards-2nd-edition-slobodan-dmitrovic/

Modern C for Absolute Beginners: A Friendly Introduction


to the C Programming Language 2nd Edition Slobodan
Dmitrovi■
https://ebookmass.com/product/modern-c-for-absolute-beginners-a-
friendly-introduction-to-the-c-programming-language-2nd-edition-
slobodan-dmitrovic/

C Programming Language: C PROGRAMMING LANG _p2 2nd


Edition, (Ebook PDF)

https://ebookmass.com/product/c-programming-language-c-programming-
lang-_p2-2nd-edition-ebook-pdf/

Introduction to Java Programming, Comprehensive Version Y.


Daniel Liang

https://ebookmass.com/product/introduction-to-java-programming-
comprehensive-version-y-daniel-liang/

Through the Lens of Anthropology: An Introduction to Human


Evolution and Culture 1st Edition, (Ebook PDF)

https://ebookmass.com/product/through-the-lens-of-anthropology-an-
introduction-to-human-evolution-and-culture-1st-edition-ebook-pdf/
An Introdu tion to Programming through C++
Abhiram Ranade

Do not distribute

Abhiram Ranade, 2013


Contents

Prefa e 14
0.1 Graphi s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
0.2 First day/ rst month blues . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
0.3 Obje t oriented programming . . . . . . . . . . . . . . . . . . . . . . . . . . 17
0.4 Fitting the book into a urri ulum . . . . . . . . . . . . . . . . . . . . . . . 17
1 Introdu tion 18
1.1 A simple program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.1.1 Exe uting the program . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.2 Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.2.1 Exe ution order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.3 Repeating a blo k of ommands . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.3.1 Drawing any regular polygon . . . . . . . . . . . . . . . . . . . . . . 22
1.3.2 Repeat within a repeat . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.4 Some useful turtle ommands . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.5 Numeri al fun tions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.6 Comments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
1.7 Computation without graphi s . . . . . . . . . . . . . . . . . . . . . . . . . . 27
1.8 Con luding Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
1.8.1 Graphi s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
1.8.2 A note regarding the exer ises . . . . . . . . . . . . . . . . . . . . . . 29
1.9 Exer ises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2 A bird's eye view 31
2.1 Problem solving using omputers . . . . . . . . . . . . . . . . . . . . . . . . 31
2.1.1 Algorithms and programs . . . . . . . . . . . . . . . . . . . . . . . . 33
2.2 Basi prin iples of digital ir uits . . . . . . . . . . . . . . . . . . . . . . . . 34
2.3 Number representation formats . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.3.1 Unsigned integer representation . . . . . . . . . . . . . . . . . . . . . 35
2.3.2 Signed integers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.3.3 Floating point representations . . . . . . . . . . . . . . . . . . . . . . 36
2.4 Organization of a omputer . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.5 Main memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.5.1 Addresses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.5.2 Ports and operations . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

1
Abhiram Ranade, 2013. Do not distribute 2
2.6 The arithmeti unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.7 Input-Output Devi es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.7.1 Keyboard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.7.2 Display . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.7.3 Disks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.7.4 Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.8 The Control Unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.8.1 Control Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2.9 High level programming languages . . . . . . . . . . . . . . . . . . . . . . . . 44
2.10 Con luding Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2.11 Exer ises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3 Numbers 46
3.1 Variables and data types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.1.1 Identi ers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.1.2 Literals and variable initialization . . . . . . . . . . . . . . . . . . . . 49
3.1.3 The onst keyword . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.1.4 Reading data into a variable . . . . . . . . . . . . . . . . . . . . . . . 51
3.1.5 Printing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.1.6 Exa t representational parameters . . . . . . . . . . . . . . . . . . . . 52
3.2 Arithmeti and assignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.2.1 Integer division and the modulo operator % . . . . . . . . . . . . . . . 54
3.2.2 Subtleties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.2.3 Over ow and arithmeti errors . . . . . . . . . . . . . . . . . . . . . . 56
3.2.4 In nity and not a number . . . . . . . . . . . . . . . . . . . . . . . . 57
3.2.5 Expli it type onversion . . . . . . . . . . . . . . . . . . . . . . . . . 57
3.2.6 Assignment expression . . . . . . . . . . . . . . . . . . . . . . . . . . 57
3.3 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.4 Assignment with repeat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.4.1 Programming Idioms . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
3.4.2 Combining sequen e generation and a umulation . . . . . . . . . . . 62
3.5 Some operators inspired by the idioms . . . . . . . . . . . . . . . . . . . . . 62
3.5.1 In rement and de rement operators . . . . . . . . . . . . . . . . . . . 63
3.5.2 Compound assignment operators . . . . . . . . . . . . . . . . . . . . 63
3.6 Blo ks and variable de nitions . . . . . . . . . . . . . . . . . . . . . . . . . . 64
3.6.1 Blo k . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
3.6.2 General prin iple 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
3.6.3 General prin iple 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
3.7 Con luding remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
3.8 Exer ises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
4 A program design example 71
4.1 Spe i ation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
4.1.1 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
4.2 Program design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Abhiram Ranade, 2013. Do not distribute 3
4.2.1 Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
4.2.2 Corre tness Proof . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
4.2.3 Invariants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
4.3 Debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
4.4 Comments in the ode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
4.5 Con luding remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
4.5.1 A note on programming exer ises . . . . . . . . . . . . . . . . . . . . 78
4.6 Exer ises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
5 Simple pp graphi s 80
5.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
5.1.1 y axis goes downward! . . . . . . . . . . . . . . . . . . . . . . . . . . 81
5.2 Multiple Turtles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
5.3 Other shapes besides turtles . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
5.3.1 Cir les . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
5.3.2 Re tangles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
5.3.3 Lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
5.3.4 Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
5.4 Commands allowed on shapes . . . . . . . . . . . . . . . . . . . . . . . . . . 83
5.4.1 Rotation in radians . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
5.4.2 Tra king a shape . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
5.4.3 Imprinting on the anvas . . . . . . . . . . . . . . . . . . . . . . . . . 84
5.4.4 Resetting a shape . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
5.5 Cli king on the anvas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
5.6 Proje tile Motion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
5.7 Best t straight line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
5.8 Con luding Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
5.9 Exer ises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
6 Conditional Exe ution 91
6.1 The If statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
6.2 Blo ks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
6.3 Other forms of the if statement . . . . . . . . . . . . . . . . . . . . . . . . . 95
6.4 A di erent turtle ontroller . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
6.4.1 \Buttons" on the anvas . . . . . . . . . . . . . . . . . . . . . . . . . 99
6.5 The swit h statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
6.6 Conditional Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
6.7 Logi al Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
6.7.1 Reasoning about logi al data . . . . . . . . . . . . . . . . . . . . . . 103
6.7.2 Determining whether a number is prime . . . . . . . . . . . . . . . . 104
6.8 Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
6.9 Exer ises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Abhiram Ranade, 2013. Do not distribute 4
7 Loops 110
7.1 The while statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
7.1.1 Counting the number of digits . . . . . . . . . . . . . . . . . . . . . . 112
7.1.2 Mark averaging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
7.2 The break statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
7.3 The ontinue statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
7.4 The do while statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
7.5 The for statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
7.5.1 Variables de ned in initialization . . . . . . . . . . . . . . . . . . 120
7.5.2 Break and ontinue . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
7.5.3 Style issue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
7.5.4 Determining if a number is prime . . . . . . . . . . . . . . . . . . . . 121
7.6 Un ommon ways of using for . . . . . . . . . . . . . . . . . . . . . . . . . . 121
7.6.1 Comma separated assignments . . . . . . . . . . . . . . . . . . . . . . 122
7.6.2 Input in initialization and update . . . . . . . . . . . . . . . . . 122
7.7 The Greatest Common Divisor . . . . . . . . . . . . . . . . . . . . . . . . . . 123
7.8 Corre tness of looping programs . . . . . . . . . . . . . . . . . . . . . . . . . 124
7.8.1 Loop Invariant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
7.8.2 Potential . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
7.8.3 Corre tness . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
7.8.4 Additional observations regarding the GCD program . . . . . . . . . 126
7.8.5 Corre tness of other programs . . . . . . . . . . . . . . . . . . . . . . 126
7.9 Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
8 Computing ommon mathemati al fun tions 129
8.1 Taylor series . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
8.1.1 Sine of an angle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
8.1.2 Natural log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
8.1.3 Some general remarks . . . . . . . . . . . . . . . . . . . . . . . . . . 132
8.2 Numeri al integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
8.3 Bise tion method for nding roots . . . . . . . . . . . . . . . . . . . . . . . . 134
8.4 Newton Raphson Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
8.5 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
8.5.1 Mathemati al ideas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
8.5.2 Programming ideas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
9 Fun tions 142
9.1 De ning a fun tion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
9.1.1 Exe ution: all by value . . . . . . . . . . . . . . . . . . . . . . . . . 144
9.1.2 Names of parameters and lo al variables . . . . . . . . . . . . . . . . 145
9.2 Nested fun tion alls: LCM . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
9.3 The ontra t view of fun tion exe ution . . . . . . . . . . . . . . . . . . . . . 147
9.3.1 Fun tion spe i ation . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
9.4 Fun tions that do not return values . . . . . . . . . . . . . . . . . . . . . . . 148
9.5 A text drawing program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
Abhiram Ranade, 2013. Do not distribute 5
9.6 Some diÆ ulties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
9.7 Call by referen e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
9.7.1 Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
9.7.2 Referen e variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
9.8 Pointers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
9.8.1 \Address of" operator & . . . . . . . . . . . . . . . . . . . . . . . . . 155
9.8.2 Pointer variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
9.8.3 Dereferen ing operator * . . . . . . . . . . . . . . . . . . . . . . . . . 156
9.8.4 Use in fun tions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
9.8.5 Referen e vs. Pointers . . . . . . . . . . . . . . . . . . . . . . . . . . 158
9.9 Returning referen es and pointers . . . . . . . . . . . . . . . . . . . . . . . . 159
9.10 Default values of parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
9.11 Fun tion overloading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
9.12 Fun tion templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
10 Re ursive Fun tions 164
10.1 Eu lid's algorithm for GCD . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
10.1.1 Exe ution of re ursive g d . . . . . . . . . . . . . . . . . . . . . . . . 166
10.1.2 Interpretation of re ursive programs . . . . . . . . . . . . . . . . . . . 167
10.1.3 Corre tness of re ursive programs . . . . . . . . . . . . . . . . . . . . 167
10.2 Re ursive pi tures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
10.2.1 Trees without using a turtle . . . . . . . . . . . . . . . . . . . . . . . 171
10.2.2 Hilbert spa e lling urve . . . . . . . . . . . . . . . . . . . . . . . . 172
10.3 Virahanka numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
10.3.1 Using a loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
10.3.2 Histori al Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
10.4 The game of Nim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
10.4.1 Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
10.5 Con luding remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
11 Program organization and fun tions 185
11.1 The main program is a fun tion! . . . . . . . . . . . . . . . . . . . . . . . . . 186
11.2 Organizing fun tions into les . . . . . . . . . . . . . . . . . . . . . . . . . . 186
11.2.1 Fun tion De laration or Prototype . . . . . . . . . . . . . . . . . . . 186
11.2.2 Splitting a program into multiple les . . . . . . . . . . . . . . . . . . 187
11.2.3 Separate ompilation and obje t modules . . . . . . . . . . . . . . . . 187
11.2.4 Header les . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
11.2.5 Header guards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
11.2.6 Pa kaging software . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
11.2.7 Forward de laration . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
11.2.8 Fun tion templates and header les . . . . . . . . . . . . . . . . . . . 191
11.3 Namespa es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
11.3.1 De nition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
11.3.2 The using de laration and dire tive . . . . . . . . . . . . . . . . . . . 193
11.3.3 The global namespa e . . . . . . . . . . . . . . . . . . . . . . . . . . 193
Abhiram Ranade, 2013. Do not distribute 6
11.3.4 Unnamed namespa es . . . . . . . . . . . . . . . . . . . . . . . . . . 194
11.3.5 Namespa es and header les . . . . . . . . . . . . . . . . . . . . . . . 194
11.4 Global variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
11.5 Two important namespa es . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
11.6 C++ without simple pp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
11.7 Fun tion Pointers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
11.7.1 Some simpli ations . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
11.8 Con luding remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
11.8.1 Fun tion size and readability . . . . . . . . . . . . . . . . . . . . . . . 200
11.9 Exer ises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
12 Pra ti e of programming: some tips and tools 202
12.1 Clarity of spe i ation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
12.2 Input-output examples and testing . . . . . . . . . . . . . . . . . . . . . . . 204
12.3 Input/output redire tion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
12.4 Algorithm design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
12.4.1 Mentally exe ute the program . . . . . . . . . . . . . . . . . . . . . . 208
12.4.2 Test ases for ode overage . . . . . . . . . . . . . . . . . . . . . . . 208
12.5 Assertions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
12.5.1 Disabling assertions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
12.6 Debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
12.6.1 Debuggers and IDEs . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
12.6.2 End of le and data input errors . . . . . . . . . . . . . . . . . . . . . 211
12.6.3 Aside: Input-Output expressions . . . . . . . . . . . . . . . . . . . . 211
12.7 Random numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
12.7.1 The randuv fun tion in simple pp . . . . . . . . . . . . . . . . . . . 213
12.8 Con luding remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
12.9 Exer ises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
13 Arrays 215
13.1 Array: Colle tion of variables . . . . . . . . . . . . . . . . . . . . . . . . . . 215
13.1.1 Array element operations . . . . . . . . . . . . . . . . . . . . . . . . . 216
13.1.2 A eptable range for the index . . . . . . . . . . . . . . . . . . . . . . 217
13.1.3 Initializing arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
13.2 Examples of use . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
13.2.1 Notation for subarrays . . . . . . . . . . . . . . . . . . . . . . . . . . 218
13.2.2 A marks display program . . . . . . . . . . . . . . . . . . . . . . . . . 218
13.2.3 Who got the highest? . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
13.2.4 General roll numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
13.2.5 Histogram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
13.2.6 A taxi dispat h program . . . . . . . . . . . . . . . . . . . . . . . . . 223
13.2.7 A geometri problem . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
13.3 The inside story . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
13.3.1 Out of range array indi es . . . . . . . . . . . . . . . . . . . . . . . . 228
13.3.2 The array name by itself . . . . . . . . . . . . . . . . . . . . . . . . . 228
Abhiram Ranade, 2013. Do not distribute 7
13.3.3 [℄ as an operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
13.4 Fun tion Calls involving arrays . . . . . . . . . . . . . . . . . . . . . . . . . 231
13.4.1 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
13.4.2 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
13.5 Sele tion sort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
13.5.1 Estimate of time taken . . . . . . . . . . . . . . . . . . . . . . . . . . 234
13.6 Representing Polynomials . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
13.7 Array Length and onst values . . . . . . . . . . . . . . . . . . . . . . . . . 236
13.7.1 Why onst de larations? . . . . . . . . . . . . . . . . . . . . . . . . . 237
13.7.2 What we use in this book . . . . . . . . . . . . . . . . . . . . . . . . 238
13.8 Con luding remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
13.9 Exer ises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
14 More on arrays 243
14.1 Chara ter strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
14.1.1 Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
14.1.2 Input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
14.1.3 Chara ter array pro essing . . . . . . . . . . . . . . . . . . . . . . . . 246
14.1.4 Address arithmeti . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
14.2 Two dimensional Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
14.2.1 Linear simultaneous equations . . . . . . . . . . . . . . . . . . . . . . 250
14.2.2 Two dimensional har arrays . . . . . . . . . . . . . . . . . . . . . . 251
14.2.3 Passing 2 dimensional arrays to fun tions . . . . . . . . . . . . . . . . 252
14.2.4 Drawing polygons in simple pp . . . . . . . . . . . . . . . . . . . . . 253
14.3 Arrays of Pointers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
14.3.1 Command line arguments to main . . . . . . . . . . . . . . . . . . . . 254
14.4 Binary sear h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
14.4.1 Estimate of time taken . . . . . . . . . . . . . . . . . . . . . . . . . . 257
14.5 Merge sort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
14.5.1 A merging algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
14.5.2 Mergesort algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
14.6 Exer ises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
15 Stru tures 264
15.1 Basi s of stru tures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
15.1.1 Visibility of stru ture types and stru ture variables . . . . . . . . . . 267
15.1.2 Arrays of stru tures . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
15.1.3 Pointers to Stru tures and -> . . . . . . . . . . . . . . . . . . . . . . 268
15.1.4 Pointers as stru ture members . . . . . . . . . . . . . . . . . . . . . . 268
15.1.5 Linked stru tures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
15.2 Stru tures and fun tions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
15.2.1 onst referen e parameters . . . . . . . . . . . . . . . . . . . . . . . 271
15.2.2 Passing pointers to stru tures . . . . . . . . . . . . . . . . . . . . . . 271
15.3 Representing ve tors from physi s . . . . . . . . . . . . . . . . . . . . . . . . 271
15.4 Taxi dispat h revisited . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
Abhiram Ranade, 2013. Do not distribute 8
15.5 Member Fun tions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
15.5.1 Referen e parameters and onst . . . . . . . . . . . . . . . . . . . . . 277
15.6 Mis ellaneous features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
15.6.1 Stati data members . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
15.6.2 Stati member fun tions . . . . . . . . . . . . . . . . . . . . . . . . . 278
15.6.3 The this pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
15.6.4 Default values to parameters . . . . . . . . . . . . . . . . . . . . . . . 279
15.7 Exer ises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
16 Classes: stru tures with a personality 281
16.1 Constru tors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
16.1.1 Calling the onstru tor expli itly . . . . . . . . . . . . . . . . . . . . 284
16.1.2 Default values to parameters . . . . . . . . . . . . . . . . . . . . . . . 284
16.1.3 \Default" Constru tor . . . . . . . . . . . . . . . . . . . . . . . . . . 285
16.1.4 Constru tors of nested stru tures . . . . . . . . . . . . . . . . . . . . 285
16.1.5 Initialization lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
16.1.6 Constant members . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
16.2 The opy onstru tor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
16.3 Destru tors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
16.4 Overloading operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
16.5 Another overloading me hanism . . . . . . . . . . . . . . . . . . . . . . . . . 290
16.6 Overloading assignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
16.7 A ess Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
16.7.1 A essor and mutator fun tions . . . . . . . . . . . . . . . . . . . . . 292
16.7.2 Prohibiting ertain operations . . . . . . . . . . . . . . . . . . . . . . 293
16.7.3 Friends . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
16.8 Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294
16.9 Header and implementation les . . . . . . . . . . . . . . . . . . . . . . . . . 294
16.9.1 Separate ompilation . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
16.9.2 Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
16.10Template lasses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
16.11Some lasses you have already used, almost . . . . . . . . . . . . . . . . . . . 297
16.11.1Graphi s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
16.11.2Standard input and output . . . . . . . . . . . . . . . . . . . . . . . . 298
16.11.3File I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
16.12Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
16.13Exer ises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
17 A proje t: osmologi al simulation 301
17.1 Mathemati s of Cosmologi al simulation . . . . . . . . . . . . . . . . . . . . 301
17.2 Overview of the program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
17.2.1 Main Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
17.3 The lass Star . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
17.4 Compiling and exe ution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
17.5 Con luding Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
Abhiram Ranade, 2013. Do not distribute 9
17.6 Exer ises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310
18 Graphi s Events 311
18.1 Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
18.1.1 Event obje ts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
18.1.2 Waiting for events . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312
18.2 Che king for events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312
18.2.1 Mouse button press events . . . . . . . . . . . . . . . . . . . . . . . . 312
18.2.2 Mouse drag events . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312
18.2.3 Key press events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
18.3 A drawing program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
18.4 A rudimentary Snake game . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
18.4.1 Spe i ation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
18.4.2 Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
18.4.3 User intera tion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
18.5 Exer ises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
19 Representing variable length entities 317
19.1 The Heap Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
19.1.1 A detailed example . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
19.1.2 Lifetime and a essibility . . . . . . . . . . . . . . . . . . . . . . . . . 320
19.2 Representing text: a preliminary implementation . . . . . . . . . . . . . . . 320
19.2.1 The basi storage ideas . . . . . . . . . . . . . . . . . . . . . . . . . . 321
19.2.2 Constru tor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
19.2.3 The print member fun tion . . . . . . . . . . . . . . . . . . . . . . . 322
19.2.4 Assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322
19.2.5 De ning operator + . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
19.3 Advan ed topi s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
19.3.1 Destru tors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
19.3.2 Copy onstru tor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
19.3.3 The [℄ operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326
19.3.4 An improved assignment operator . . . . . . . . . . . . . . . . . . . . 326
19.3.5 Use . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326
19.4 Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
19.4.1 Class invariants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
19.5 Exer ises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
20 The standard library 332
20.1 The string lass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332
20.1.1 Passing strings to fun tions . . . . . . . . . . . . . . . . . . . . . . . 334
20.1.2 A detailed example . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
20.2 The template lass ve tor . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
20.2.1 Inserting and deleting elements . . . . . . . . . . . . . . . . . . . . . 335
20.2.2 Index bounds he king . . . . . . . . . . . . . . . . . . . . . . . . . . 335
20.2.3 Fun tions on ve tors . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
20.2.4 Ve tors of user de ned data types . . . . . . . . . . . . . . . . . . . . 336
Visit https://ebookmass.com today to explore
a vast collection of ebooks across various
genres, available in popular formats like
PDF, EPUB, and MOBI, fully compatible with
all devices. Enjoy a seamless reading
experience and effortlessly download high-
quality materials in just a few simple steps.
Plus, don’t miss out on exciting offers that
let you access a wealth of knowledge at the
best prices!
Abhiram Ranade, 2013. Do not distribute 10
20.2.5 Multidimensional ve tors . . . . . . . . . . . . . . . . . . . . . . . . . 336
20.2.6 A matrix lass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
20.3 Sorting a ve tor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338
20.4 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
20.4.1 Marks display variation 1 . . . . . . . . . . . . . . . . . . . . . . . . 339
20.4.2 Marks display variation 2 . . . . . . . . . . . . . . . . . . . . . . . . 339
20.4.3 Marks display variation 3 . . . . . . . . . . . . . . . . . . . . . . . . 340
20.5 The map template lass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
20.5.1 Marks display variation 4 . . . . . . . . . . . . . . . . . . . . . . . . 343
20.5.2 Time to a ess a map . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
20.6 Containers and Iterators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
20.6.1 Finding and deleting map elements . . . . . . . . . . . . . . . . . . . 347
20.6.2 Inserting and deleting ve tor elements . . . . . . . . . . . . . . . . . 348
20.7 Other ontainers in the standard library . . . . . . . . . . . . . . . . . . . . 348
20.8 The typedef statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
20.8.1 More general form . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
20.9 Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
20.10Exer ises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
21 Representing networks of entities 353
21.1 Graphs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
21.1.1 Adja en y lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354
21.1.2 Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
21.1.3 Array indi es rather than pointers . . . . . . . . . . . . . . . . . . . . 355
21.1.4 Edges represented expli itly . . . . . . . . . . . . . . . . . . . . . . . 356
21.2 Adja en y matrix representation . . . . . . . . . . . . . . . . . . . . . . . . . 356
21.3 Sur ng on the internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357
21.4 Cir uits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
21.5 Edge list representation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
21.6 Auxiliary data stru tures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
21.7 Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
21.8 Exer ises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
22 Stru tural re ursion 364
22.1 Layout of mathemati al formulae . . . . . . . . . . . . . . . . . . . . . . . . 365
22.1.1 Input format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
22.1.2 Layout \by hand" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366
22.1.3 Representing mathemati al formulae . . . . . . . . . . . . . . . . . . 368
22.1.4 Reading in a formula . . . . . . . . . . . . . . . . . . . . . . . . . . . 370
22.1.5 Drawing the formula: overview . . . . . . . . . . . . . . . . . . . . . 371
22.1.6 The omplete main program . . . . . . . . . . . . . . . . . . . . . . . 375
22.1.7 Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375
22.2 Maintaining an ordered set . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375
22.2.1 A sear h tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376
22.2.2 The general idea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377
Abhiram Ranade, 2013. Do not distribute 11
22.2.3 The implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . 378
22.2.4 A note about organizing the program . . . . . . . . . . . . . . . . . . 380
22.2.5 On the eÆ ien y of sear h trees . . . . . . . . . . . . . . . . . . . . . 380
22.2.6 Balan ing the sear h tree . . . . . . . . . . . . . . . . . . . . . . . . . 382
22.2.7 Sear h trees and maps . . . . . . . . . . . . . . . . . . . . . . . . . . . 382
22.3 Exer ises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382
23 Inheritan e 386
23.1 Turtles with an odometer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387
23.1.1 Implementation using Composition . . . . . . . . . . . . . . . . . . . 387
23.1.2 Implementation using Inheritan e . . . . . . . . . . . . . . . . . . . . 388
23.2 General prin iples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389
23.2.1 A ess rules and prote ted members . . . . . . . . . . . . . . . . . . 390
23.2.2 Constru tors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392
23.2.3 Destru tors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393
23.2.4 Basi operations on sub lass obje ts . . . . . . . . . . . . . . . . . . 393
23.2.5 The type of a sub lass obje t . . . . . . . . . . . . . . . . . . . . . . 393
23.2.6 Assignments mixing super lass and sub lass obje ts . . . . . . . . . . 393
23.3 Polymorphism and virtual fun tions . . . . . . . . . . . . . . . . . . . . . . . 395
23.3.1 Virtual Destru tor . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396
23.4 Program to print past tense . . . . . . . . . . . . . . . . . . . . . . . . . . . 397
23.5 Abstra t Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399
23.6 Multiple inheritan e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400
23.6.1 Diamond Inheritan e . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
23.7 Types of inheritan e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
23.8 Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
23.9 Exer ises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
24 Inheritan e based design 405
24.1 Formula drawing revisited . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406
24.1.1 Basi design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406
24.1.2 Comparison of the two approa hes . . . . . . . . . . . . . . . . . . . 409
24.1.3 Adding exponential expressions . . . . . . . . . . . . . . . . . . . . . 410
24.2 The simple pp graphi s system . . . . . . . . . . . . . . . . . . . . . . . . . 411
24.3 Composite graphi s obje ts . . . . . . . . . . . . . . . . . . . . . . . . . . . 414
24.3.1 Ownership . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414
24.3.2 The Composite lass onstru tor . . . . . . . . . . . . . . . . . . . . 415
24.3.3 A Car lass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415
24.3.4 Frames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417
24.3.5 Main program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417
25 Dis rete event simulation 419
25.1 Dis rete event simulation overview . . . . . . . . . . . . . . . . . . . . . . . 420
25.1.1 Dis rete time systems . . . . . . . . . . . . . . . . . . . . . . . . . . . 420
25.1.2 Evolution of a dis rete time system . . . . . . . . . . . . . . . . . . . 421
25.1.3 Implementing a dis rete time system . . . . . . . . . . . . . . . . . . 422
Abhiram Ranade, 2013. Do not distribute 12
25.1.4 Simple examples of use . . . . . . . . . . . . . . . . . . . . . . . . . . 423
25.2 The restaurant simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426
25.3 Resour es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427
25.3.1 A Resour e lass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427
25.3.2 Simple example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429
25.3.3 The o ee shop simulation . . . . . . . . . . . . . . . . . . . . . . . . 429
25.4 Single sour e shortest path . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431
25.4.1 Dijkstra's algorithm as a simulation . . . . . . . . . . . . . . . . . . . 433
25.5 Con luding Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435
26 Simulation of an airport 438
26.0.1 Chapter outline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439
26.1 The simulation model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439
26.1.1 Overall fun tioning . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440
26.1.2 Safe operation and half-runway-ex lusion . . . . . . . . . . . . . . . . 440
26.1.3 S heduling strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441
26.1.4 Gate allo ation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441
26.1.5 Simulator input and output . . . . . . . . . . . . . . . . . . . . . . . 441
26.2 Implementation overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442
26.2.1 Safe operation and half-runway-ex lusion . . . . . . . . . . . . . . . . 442
26.2.2 Gate representation and allo ation . . . . . . . . . . . . . . . . . . . 442
26.3 Main program and data stru ture . . . . . . . . . . . . . . . . . . . . . . . . 443
26.4 The taxiway lass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443
26.5 The ATC lass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445
26.6 The plane lass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449
26.7 Deadlo ks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450
26.8 Con luding remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451
27 Non-linear simultaneous equations 454
27.1 Newton-Raphson method in many dimensions . . . . . . . . . . . . . . . . . 454
27.1.1 The general ase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456
27.1.2 Termination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457
27.1.3 Initial guess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457
27.2 How a ne kla e reposes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457
27.2.1 Formulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457
27.2.2 Initial guess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458
27.2.3 Experien e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459
27.3 Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459
27.4 Exer ises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459
A Installing Simple pp 460
B Managing Heap Memory 461
B.1 Referen e Counting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463
B.2 The template lass shared ptr . . . . . . . . . . . . . . . . . . . . . . . . . 463
B.2.1 Syntheti example . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464
Abhiram Ranade, 2013. Do not distribute 13
B.2.2 General strategy . . . . . . .... . . . . . . . . . . . . . . . . . . . 465
B.2.3 Shared pointer in derivative nding . . . . . . . . . . . . . . . . . . . 465
B.2.4 Weak pointers . . . . . . . . .... . . . . . . . . . . . . . . . . . . . 468
B.2.5 Solution idea . . . . . . . . .... . . . . . . . . . . . . . . . . . . . 468
B.3 Con luding remarks . . . . . . . . . .... . . . . . . . . . . . . . . . . . . . 469
C Libraries 470
C.0.1 Linking built-in fun tions . . . . . . . . . . . . . . . . . . . . . . . . 470
D Reserved words in C++ 472
E Operators and operator overloading 473
E.1 Bitwise Logi al operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473
E.1.1 Or . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473
E.1.2 And . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474
E.1.3 Ex lusive or . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474
E.1.4 Complement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474
E.1.5 Left shift . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474
E.1.6 Right shift . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475
E.2 Comma operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475
E.3 Operator overloading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476
F The stringstream lass 477
G The C++ Prepro essor 479
H Lambda expressions 480
H.1 General form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481
H.1.1 The type of a lambda expression . . . . . . . . . . . . . . . . . . . . 481
H.1.2 Variable apture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481
H.1.3 Dangling referen es . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482
H.1.4 Capturing this . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482
Prefa e

This book presents an introdu tion to programming using the language C++. No prior
knowledge of programming is expe ted, however the book is oriented towards a reader who
has nished about 12 years of s hooling, preferably in the S ien e stream.
The book presents a fairly omprehensive introdu tion to the C++ language, in luding
some ex iting additions to it in the latest standard. However, the goal of the book is to
tea h programming, whi h is di erent from merely learning the di erent statements in any
programming language. Programming, like any skill, must be integrated with the other
knowledge and skills that the learner has. Also, programming is a liberating skill whi h an
hange your world view. Programming enables you to experiment/play with the math or
physi s that you have learned. You have been told that planets must move around the sun;
but if you know programming you an write a program to he k if this laim might be true.
In general, programming should en ourage you to make a model of the world around you
and experiment with it on a omputer. Obviously, this requires a ertain experien e and
knowledge about the world. It is our thesis that 12 years of s hooling in the S ien e stream
an indeed provide su h knowledge. In any ase, the book has been written not only to tea h
programming to our target readership, but also to hallenge and provoke them to using it in
ex iting ways.
This book does not emphasize any spe i programming methodology. Instead, we have
tried to present ideas in order of intelle tual simpli ity as well as simpli ity of programming
syntax. The general presentation style is: \Here is a problem whi h we would like to solve
but we annot using the programming primitives we have learned so far; so let us learn this
new primitive". Obje t oriented programming is learly important, but an attempt is made
to let it evolve as a programming need. We dis uss this more in Se tion 0.3.
This book is expe ted to be used along with a pa kage, simple pp, developed for use
in the book. Appendix A ontains instru tions for installing simple pp and the s ript that
an be used to ompile user programs that use simple pp. This pa kage ontains (a) a set
of graphi s lasses whi h an be used to draw and manipulate simple geometri shapes on
the s reen, and (b) some prepro essor ma ros whi h help in smoothing out the introdu tion
of C++ in the initial period. We feel that the use of simple pp an onsiderably help in
learning C++. This is dis ussed in greater detail below.
We on lude this prefa e by suggesting how this book an be tted into a urri ulum.

0.1 Graphi s
I hear and I forget. I see and I remember. I do and I understand.

14
Abhiram Ranade, 2013. Do not distribute 15
{Confu ius
Traditionally, introdu tory programming uses the domain of numbers or text to illustrate
programming problems and programming strategies. However, a large part of the human
experien e deals with pi tures and motion. This is espe ially true for our target reader.
Humans have evolved to have a good sense of geometry and geography, and are experts
at seeing patterns in pi tures and also planning motion. If this expertise an be brought
into a tion while learning programming, it an make for a more mature intera tion with the
omputer. It is for this reason that simple pp was primarily developed.
Our pa kage simple pp ontains a olle tion of graphi s lasses whi h allow simple geo-
metri al shapes to be drawn and manipulated on the s reen. Ea h shape on the s reen an
be ommanded to move or rotate or s ale as desired. Taking inspiration from the hildren's
programming language Logo, ea h shape also has a pen, whi h may be used to tra e a urve
as the shape moves. The graphi s lasses enable several omputational a tivities su h as
drawing interesting urves and patterns and performing animations together with omputa-
tions su h as ollision dete tion. These a tivities are hallenging and intuitive at the same
time.
The graphi s lasses are used right from the rst hapter. The introdu tory hapter
begins with a program to draw polygons. The program statements ommand a turtle 1

holding a pen to tra es the lines of the polygon. An immediate bene t is that this simple
exer ise makes the imperative aspe t of programming and notions su h as ontrol ow very
obvious. A more important realization, even from this very elementary session is the need to
re ognize patterns in the pi ture being drawn. A pattern in the pi ture often translates to
an appropriate programming pattern, say iteration or re ursion. Identifying and expressing
patterns is a fundamental a tivity in programming. These onsiderations an be brought to
the fore very easily.
As you read along, you will see that graphi s is useful for explaining many on epts, from
variable s oping and parameter passing to inheritan e based design. Graphi al fa ilities make
several traditional examples (e.g. tting lines to points, or simulations) very vivid. Finally,
graphi s is a lot of fun, a fa tor not to be overlooked. After all, edu ators worldwide are
on erned about dwindling student attention and how to attra t students to a ademi s.

0.2 First day/ rst month blues


C++, like many professional programming languages, is not easy to introdu e to novi es.
Many introdutory programming books begin with a simple program that prints the mes-
sage \hello world". On the fa e of it, this is a very natural beginning. However, even a
simple program su h as this appears ompli ated in C++ be ause it must be en ased in a
fun tion, main, having a return type int. The notion of a return type is learly inappropriate
to explain on the very rst day. Other on epts su h as namespa es are even more daunt-
ing. The only possibility is to tell the students, \dont worry about these, you must write
these mantras whose meaning you will understand later". This doesnt seem pedagogi ally
satisfa tory.
1 Represented by a triangle on the s reen, as in the language Logo.
Abhiram Ranade, 2013. Do not distribute 16
After the student has somehow negotiated through int main and namespa es, there is
typi ally a long preparatory period in whi h substantial basi material su h as data types
and ontrol stru tures has to be learnt, until any interesting program an be written. Psy-
hologi ally and logisti ally, this \slow" period is a problem. Psy hologi ally, a preparatory
period without too mu h intelle tual hallenge an be viewed by the student as boring, whi h
is a bad initial impression for the subje t. Se ond, in most ourse o erings, students tend
to have weekly le ture hours and weekly programming pra ti e hours. In the initial weeks,
students are fresh and rearing to go. It is disappointing to them if there is nothing ex iting
to be done, not to mention the waste of time.
To ounter these problems the following features have been in luded in simple pp.
Instead of the main program being spe i ed inside a fun tion main returning int, a
prepro essor ma ro main program is de ned (it expands to int main()). The main program
an be written as
main_program{
body
}
Further, on e the student loads in the simple pp pa kage using #in lude <simple pp>,
nothing additional needs to be loaded, nor using dire tives given. The simple pp pa kage
itself loads other header les su h as iostream and issues the using dire tives. These
\training wheels" are taken o when fun tions et . are explained (Chapter 9).
A se ond \language extension" is the in lusion of a \repeat" statement. This statement
has the form
repeat( ount){body}

and it auses the body to be exe uted as many times as the value of the expression ount.
This is also implemented using prepro essor ma ros and it expands into a for statement.
We believe that the repeat statement is very easy to learn, given a good ontext. Indeed,
it is introdu ed in Chapter 1, where instead of using a separate statement to draw ea h edge
of a polygon, a single line drawing statement inside a repeat statement suÆ es. In fa t the
turtle-based graphi al drawing examples are ompelling enough that students do not have
any diÆ ulty in understanding nested repeat statements either.
In the se ond and third hapters, there is a dis ussion of omputer hardware, data rep-
resentation and data types. These topi s are important, but are not amenable to good
programming exer ises. For this period, the repeat statement together with the notions in-
trodu ed in the rst hapter an be used very fruitfully to generate relevant and interesting
programming exer ises.
In addition, simple pp ontains some mis ellaneous fa ilities, a fun tion to generate
random numbers in a range, and lasses for managing event driven simulations. The ode
for all this is of ourse provided, and the student an look at the ode when he or she is
ready to do so.
Abhiram Ranade, 2013. Do not distribute 17
0.3 Obje t oriented programming
The dominant paradigm in modern programming pra ti e is learly the obje t oriented
paradigm. As a result, there have been approa hes to edu ation whi h attempt to introdu e
lasses and obje ts from \day 1". But even the proponents of these approa hes have noted
that lasses and obje ts are diÆ ult to tea h from the rst day for a number of reasons. For
example, for very simple programs, organizing programs into lasses might be very arti ial
and verbose. Expe ting a student to a tually develop lasses very early requires understand-
ing a fun tion abstra tion (for developing member fun tions/methods) even before ontrol
stru tures are understood. This an appear unmotivated and overwhelming.
Our dis ussion of obje t oriented programming an be onsidered to begin in Chapter 5:
reating a graphi al shape on the s reen requires reating an obje t of a graphi s lass.
However, in the initial hapters, it is only ne essary to use lasses, not build new lasses.
Thus shapes an be reated, and member fun tions invoked on them to move them around
et .
Classes are presented as an evolution of the stru t notion of the programming language
C. The major dis ussion of lasses in luding the modern motivations happens in Chapter 16,
however member fun tions are introdu ed in Se tion 15.5. Inheritan e is presented in Chap-
ter 23. Chapter 24 presents inheritan e based design. It ontains a detailed example in
whi h a program developed earlier, without inheritan e, is redeveloped, but this time using
inheritan e. This vividly shows how inheritan e an help in writing reusable, extensible
ode. A brief des ription of the design of simple pp graphi s system is also given, along
with an extension to handle omposite obje ts.

0.4 Fitting the book into a urri ulum


The book an be used for either a one semester ourse or a two semester sequen e.
For a one semester ourse, the re ommended syllabus is Chapters 1 through Chapter 16,
Chapter 19, Chapter 23. Many of these hapters ontain multiple examples of the same
on ept, all of these need not be \ overed" in lass. In addition, Chapter 20 should be
dis ussed, at least at a high level.
A two semester sequen e an over Chapters 1 through Chapter 16 in the rst semester,
going over them arefully and onsidering at length aspe ts su h as proving orre tness of
programs. The se ond semester ould over the remaining hapters. In a two semester
ourse, it would be appropriate to introdu e some of the modern ideas su h as referen e
ounting pointers (Appendix B).
Chapter 1

Introdu tion

A omputer is one of the most remarkable ma hines invented by man. Most other ma hines
have a very narrow purpose. A wat h shows time, a amera takes pi tures, a tru k arries
goods from one point to another, an ele tron mi ros ope shows magni ed views of very small
obje ts. Some of these ma hines are mu h larger than a omputer, and many mu h more
expensive, but a omputer is mu h, mu h more omplex and interesting in the kind of uses
it an be put to. Indeed, many of these ma hines, from a wat h to an ele tron mi ros ope
typi ally might ontain a omputer inside them, performing some of the most vital fun tions
of ea h ma hine. The goal of this book is to explain how a omputer an possibly be used
for so many purposes, and many more.
Viewed one way, a omputer is simply an ele tri al ir uit; a giant, omplex ele tri al
ir uit, but a ir uit nevertheless. In prin iple, it is possible to make omputers without the
use of ele tri ity { indeed there have been designs of omputers based on using me hani al
gears, or uidi s devi es. But all that is mostly of histori al importan e. For pra ti al
1

purposes, today, it is ne to regard a omputer as an ele tri al ir uit. Parts of this ir uit
are apable of re eiving data from the external world, remembering it so that it an be
reprodu ed later, pro essing it, and sending the results ba k to the external world. By data
we ould mean di erent things. For example, it ould mean some numbers you type from the
keyboard of a omputer. Or it ould mean ele tri al signals a omputer an re eive from a
sensor whi h senses temperature, pressure, light intensity and so on. The word pro ess might
mean something as simple as al ulating the average of the sequen e of numbers you type
from the keyboard. It ould also mean something mu h more omplex: e.g. determining
whether the signals re eived from a light sensor indi ate that there is some movement in
the vi inity of the sensor. Finally, by \send data to the external world" we might mean
something as simple as printing the al ulated average on the s reen of your omputer so
that you an read it. Or we ould mean a tivating a beeper onne ted to your omputer if
the movement dete ted is deemed suspi ious. Exa tly whi h parts of the ir uit are a tive
at what time is de ided by a program fed to the omputer.
It is the program whi h distinguishes a omputer from most other ma hines; by installing
di erent programs the same omputer an be made to behave in dramati ally di erent ways.
How to develop these programs is the subje t of this book. In this hapter, we will begin
1 Also it is appropriate to think of our own brain as a omputer made out of biologi al material, i.e.
neurons or neural ells.

18
Abhiram Ranade, 2013. Do not distribute 19
by seeing an example of a program. It turns out that we an understand, or even develop
(typi ally alled write) programs without knowing a lot about the spe i ir uits that the
omputer ontains. Learning to write programs is somewhat similar to how one might learn
to drive a ar; learly one an learn to drive without knowing how exa tly an automobile
engine works. Indeed, not only will you be able understand the program that we show you,
but you will immediately be able to write some simple programs.
There are many languages using whi h programs an be written. The language we will
use in this book is the C++ programming language, invented in the early 1980s by Bjarne
Stroustrup. For the initial part of the book, we will not use the bare C++ language, but
instead augment it with a pa kage alled simple pp whi h we have developed. How to
install this pa kage is explained in Appendix A. We developed this pa kage so that C++
appears more friendly and more fun to people who are starting to learn C++. To use the
driving metaphor again, it ould be said that C++ is like a omplex ra ing ar. When you
are learning to drive, it is better to start with a simpler vehi le, in whi h there aren't too
many onfusing ontrols. Also, standard C++ does not by default ontain the ability to
draw pi tures. The pa kage simple pp does ontain this feature. We thus expe t that by
using the simple pp pa kage it will be easier and more fun to learn the language. But in
a few hapters (by Se tion 11.6), you will outgrow simple pp and be able to use standard
C++ (like \the pros"), unless of ourse you are using the graphi s features.

1.1 A simple program


Our rst example program is given below.
#in lude <simple pp>
main_program{
turtleSim();

forward(100);
left(90);
forward(100);
left(90);
forward(100);
left(90);
forward(100);

wait(5);
}

If you exe ute this program on your omputer, it will rst open a window. Then a small
triangle whi h we all a turtle will appear in the window. Then the turtle will move and
2

draw lines as it moves. The turtle will draw a square and then stop. After that, the window
will vanish, and the program will end. Shortly we will des ribe how to exe ute the program.
2 Our turtle is meant to mimi the turtle in the Logo programming language.
Visit https://ebookmass.com today to explore
a vast collection of ebooks across various
genres, available in popular formats like
PDF, EPUB, and MOBI, fully compatible with
all devices. Enjoy a seamless reading
experience and effortlessly download high-
quality materials in just a few simple steps.
Plus, don’t miss out on exciting offers that
let you access a wealth of knowledge at the
best prices!
Exploring the Variety of Random
Documents with Different Content
Bennos Taufe wurde von den Schwiegereltern zu einem
prunkenden Familienfest ausgestaltet, das die niedliche Villa Perthes
von oben bis unten mit Gästen füllte. Außer den Eltern Hupfeld
waren Leutnant Moritz und Cousine Hilla da, Graf und Gräfin
Hüningen, Professor Hammann und Frau und viele andere. —
Perthes' Habilitationsschrift war vor Weihnachten fertig geworden
und eingereicht. Er arbeitete jetzt an seiner Antrittsvorlesung, die
wohl Anfang Februar folgen konnte. Er mußte sich tüchtig
dranhalten, um fertig zu werden. Alice, die die „schreckliche
Paukerei” sehr abgeschmackt fand, war wohlauf und verbrachte
wieder, wie zuvor, die meisten Stunden des Tages außer dem Hause.
Perthes war seit ihrem Weihnachtsversprechen völlig beruhigt und
nachsichtiger denn je. Sie waren beide zärtlich und einträchtig
miteinander, so oft eine halbe Stunde sie zusammenführte. Fragte er
zufällig einmal, was sie triebe, so lautete die regelmäßige Auskunft,
daß sie mit Bubi bei den Großeltern gewesen sei. Er fand das riesig
nett für sie und die alten Herrschaften und bedauerte nur, daß er
selber seinen Jungen höchstens einmal zwischen Tag und Dunkel in
den Armen halten konnte.
An einem der letzten Januarabende, als er mit einer Zigarre von
der Klinik die Allee am Fluß entlangschritt — gemütlicher als sonst,
denn die Ausarbeitung seiner Antrittsvorlesung war in diesen Tagen
fertig geworden —, begegnete ihm Doktor Markwaldt. Er hatte den
ehemaligen Arbeitsgenossen vom Bakteriologischen Institut seit
langem nicht gesehen, denn in der klinischen Gesellschaft zeigte er
sich, seit er verheiratet war und an seinen wissenschaftlichen
Nebenarbeiten übergenug zu tun hatte, so gut wie gar nicht mehr.
Die Begrüßung war von Perthes' Seite sehr freundlich, von seiten
Markwaldts noch überdies sehr respektvoll, mit einer kleinen Dosis
nicht schlecht gemeinten, sondern eher bewundernden Spottes für
den famosen Streber, der seine klatschbeflissene Nußknackerei so
lange zum Narren gehalten hatte. Sie unterhielten sich eine Strecke
Wegs. Vor der neuen Brücke, wo sie sich, wie in alten Tagen,
trennten, fühlte sich Markwaldt noch zu einem Kompliment
gedrungen.
„Im übrigen, Herr Kollege, der indische Verkaufsstand Ihrer Frau
Gemahlin auf dem Basar — einfach tadellos!” Er schnalzte voll
Anerkennung mit der Zunge.
Perthes, der schon Markwaldts gepolsterte kleine Hand
losgelassen, blieb erstaunt stehen.
„Sie wollen mir wohl zum Abschied eine Ihrer berüchtigten
Neuigkeiten aufschwatzen?” erklärte er ruhig und lachend. „Meine
Frau ist ja gar nicht dort.”
„Na, da hört sich aber die totale Weltgeschichte auf! Wenn
jemand flunkert, sind — verzeihen Sie mir — Sie das! Vor noch nicht
zwei Stunden war ich in der Festhalle, um mir den Klimbim mal
anzusehen und habe von Ihrer Frau Gemahlin einen mächtigen
indischen Topfscherben — vermutlich aus Berlin SO — für
unglaubliches Geld erstanden. Von der Gräfin Hüningen —”
Perthes war erdfahl geworden.
Markwaldt, nichts ahnend, hielt inne und sah ihn dumm-verdutzt
an.
Doch schon im nächsten Moment hatte Perthes eine
vorbeifahrende Droschke angerufen. Mit einem hastigen
„Entschuldigen Sie!” verabschiedete er sich von dem fassungslosen
Bakteriologen und saß im Wagen.
„Nach der Festhalle!” befahl er dem Kutscher.
In fünf Minuten hielt der Wagen vor dem Portal. Wie er war,
stürmte Perthes die Treppe hinauf. Ohne Rücksicht auf das Geflüster
der festlich geschmückten jungen Mädchen, die im Vorraum die
Köpfe zusammensteckten, um dann, wie aus der Pistole geschossen,
mit ihren Programmbüchern, Konfitüren und Losen auf ihn
zuzuschießen; ohne rechts oder links einen der zahlreichen
Bekannten zu begrüßen, ja ohne auch nur, trotz des hellen Rufes der
Kassiererin, eine Karte zu lösen, eilte er in den Trubel des Saales und
drängte sich beinahe barsch durch die lachende, schwatzende
Menschenmenge. Sein blasser, schwarzbärtiger Kopf, in diesem
Moment wirklich räuberhaft, überragte die meisten Besucher.
Bei einer der girlandenumwundenen Säulen, nahe der
Komiteeloge mit ihren Fahnen und Blumengewinden, blieb er stehen.
Er hatte den indischen Stand entdeckt. Inmitten eines Schwarmes
von Käufern — Offizieren, Studenten, Akademikern — sah er seine
Frau.
In einer glanzvollen Phantasierobe, lachend und schwatzend,
verhandelte sie eben über eine bronzene Vase mit dem
schlitzäugigen Prinzen von Siam, den er vom Feldberg kannte, und
der gegenwärtig die byzantinisch angebetete Zierde derer um
Hupfeld war ...
Der Schweiß trat ihm kalt auf die Stirn. Seine Augen schweiften,
wie Halt suchend, über das Gewirr der Menschen, an den Buden
längs der Wände hin. In einem Verkaufsstand glaubte er einen
Augenblick neben Frau Geheimrat Achenbach Marga und Elli
Richthoff zu erkennen. Es war nur eine Fiktion. Seine Zähne
knirschten. Er drehte sich gewaltsam um. Er spürte, wie seine
Leidenschaftlichkeit in ihm aufwallte. Seine Liebe für Alice war immer
ein eigenartiges Gemisch widerstrebender Empfindungen gewesen.
Heute brach die Wut, unstreitig die Wut aus ihm hervor. Er hätte auf
Alice zustürzen, er hätte sie zu Boden schlagen können. Der Haß des
Edeltieres Mann gegen das Ewigweibliche im Sinn des Ewigtierischen
verdunkelte seinen Sinn. Mit dem letzten Aufwand seiner Energie
rannte er aus dem Saal, wie er gekommen war. Er erreichte sein
Haus, ohne zu wissen wie ...
Frau Perthes, die von seinem unerwarteten Auftauchen Kunde
erhalten, zog es vor, bei ihren Eltern zu übernachten. Sie war
überzeugt, daß sein Groll bis zum Morgen verraucht sein würde. So
ein Pech! Sie hatte sich so sicher geglaubt! Wie war er, der sich um
nichts dergleichen mehr gekümmert, nur auf den Einfall gekommen,
in die Festhalle zu gehen! Gott — erfahren hätte er es wohl auch so.
Bestenfalls konnte er jetzt etwas länger grollen ...
Perthes ließ sich am anderen Morgen auf der Klinik „verhindert”
melden. Er wartete auf Alice.
Seine heiße Wut hatte einer kälteren, bestimmteren Platz
gemacht.
Vergnügt, gleichgültig, spitzbübisch, als wäre nichts geschehen,
kam sie gegen Mittag heim.
Er stellte sie mit dürren Worten zur Rede. Sie blieb höchst
gelassen. Du lieber Himmel, sie hatte das dumme, überspönige
Versprechen von Weihnachten nicht so ernst genommen! Sie hatte
ihn ja weiter gar nicht mehr belästigt. Was wollte er denn
überhaupt? Die ganze Ausstattung der indischen Bude hatte sie sich
von Papa schenken lassen! Damit war doch die Sache erledigt ...
Perthes war angesichts ihrer vollendeten Skrupellosigkeit, dieser
moralischen Stumpfheit einer unschuldigen kleinen Wilden, eines
verbildeten, unartigen Kindes sprachlos. Er wollte aufbrausen. Aber
sein Zorn fiel in sich zusammen. Seine Stimme versagte. Was er da
vor sich hatte: das war ja die immer gesuchte, immer wieder
vertuschte und verschobene Lösung des Rätsels. Hinter den
lockenden Irrlichtaugen, den Gamingrimassen, den tollen
Gassensprüngen — die Leere! die vollendete Hohlheit! Er hatte
seinen Irrwisch in der Hand: es war ein kleines, schwarzes,
unscheinbares Nichts, von dem niemand begriff, wie es zu seinem
Leuchten kam ...
Er schickte Alice weg.
Hier war nichts mehr zu ändern. Hier gab es nur eines: handeln.
Die Umgebung, vielleicht war es nur die Umgebung, die sie ruinierte.
Aus ihr mußte sie heraus. Mit ihm. Mit dem Kind, ehe sie auch dieses
vernachlässigte oder gar mit ihrer Oberflächlichkeit ansteckte!
Mit der Heftigkeit seines Temperaments drang er vom Entschluß
zur Tat.
Am Nachmittag ging er zu Hupfelds.
Exzellenz war gerade von einer Reise zurückgekommen, von
einer auswärtigen Konsultation, die ihn sehr abgespannt hatte.
Eigentlich empfing er niemand. Ziemlich widerwillig machte er mit
seinem Schwiegersohn eine Ausnahme.
Als Perthes eintrat, lag er auf seinem Diwan ausgestreckt. Mit
überlegener, etwas nervöser Ruhe hörte er den Sachverhalt an. Er
konnte die Aufregung des „lieben Jungen” verstehen. Er verstand ja
alles. Er sagte ihm das, fügte aber hinzu, man müßte gerecht sein.
Das „arme Kind” brauchte nun mal seine Extravaganzen. Im übrigen
würde die Ehe das Ihrige tun, um sie noch mehr zu zähmen, seine
Hummel. Mein Gott, das waren so die kleinen Evolutionen, die jede
Ehe durchmachte! Nur sie nicht als Revolution betrachten! Dadurch
machte man sie erst dazu!
Perthes hörte ehrerbietig zu. Aber er opponierte. Er glaubte aus
den und den Gründen, daß die Sache ernsthaft sei. Er hatte noch
immer nicht begriffen, daß „Ernst” im Hause Hupfeld nur eine höchst
relative Größe war. Und er rückte geradeswegs mit seinem Wunsch
heraus: Der Geheime Rat solle einwilligen, daß er mit Alice nach
auswärts ginge, wenn es nur für ein paar Jahre wäre. Eine andere
Assistenz oder eine Anstaltsleitung ließe sich gewiß für ihn finden.
Hupfeld sah seinen Schwiegersohn groß an. So, wie man jemand
ansieht, an dessen normalem Befinden man zweifelt.
„Lieber Junge,” begann er dann herablassend und mild, „du bist
überreizt. Das sind — verzeih — das sind Ausgeburten eben einer
überreizten Phantasie. Du hast dir das auch nicht ernstlich überlegt.
Erstens kann ich es als Vater nicht zulassen. Wir wollen Alli nicht
entbehren. Zweitens brauch' ich meinen Assistenten. Drittens würde
damit deine ganze Laufbahn in Frage gestellt. Was du selbst
einsehen mußt.”
Perthes sah nichts ein. Hartnäckig blieb er bei seinem Wunsch. Er
brachte ihn mit Nachdruck, beinahe heftig, von neuem vor. Er wollte
und mußte weg von hier, um Alices, des Kindes und um seinetwillen.
Exzellenz richtete sich halb vom Diwan auf. In den blassen Augen
schimmerte ein grüner, zorniger Blitz. Die hohe, leere Stirn faltete
sich und die sonst so getragene Stimme wurde unangenehm scharf,
fast bösartig.
„Niemals!” erklärte er mit der abschneidenden Gebärde des
großen Mannes. „Davon wünsche ich nichts mehr zu hören!
Niemals!” Und mit einer Bonhomie, die verletzender war als dieser
herrische Zorn, weil sie Perthes kraß seine Stellung gegenüber dem
Mann zeigte, der ihn „gemacht” hatte, setzte Exzellenz nach einer
Pause hinzu: „So haben wir nicht gewettet, mein lieber Junge! Merk
dir das gefälligst! Und laß mich jetzt ausruhen! Ich bin halb tot!
Adieu!” Er reichte Perthes die berühmte, molluskenweiche Hand, die
dieser frostig berührte.
Die Audienz war beendet.
Als Perthes wieder auf der Straße war, war er versucht, seine
Arme zu heben, zu schütteln. Mußte man nicht die Ketten klirren
hören, die er sich selber geschmiedet? In denen er sich selber
gefangen? Er — der Streber mit Willen! Gefangen,
zusammengekettet mit einem leuchtenden Nichts! Er mit seinem
verwundeten, niedergetretenen Stolz! Mit seiner Seele, die er sich
abgeschafft und die sich doch nicht abschaffen ließ, sondern klagte,
forderte, rief und schrie! ... Seine Leidenschaftlichkeit half ihm nichts
mehr. Die dämonische Lust half nicht mehr. Es gab kein Springen
mehr. Er mußte schreiten. Was er sein ganzes Leben nicht gekonnt:
jetzt mußte er es können! Und er lernte es. Jahraus, jahrein besser
— und für ein ganzes Leben, wenn es sein sollte.
Noch im Spätherbst, nach der Habilitation, verschaffte ihm sein
Schwiegervater ein Douceur. Für die rauhe Weigerung
gewissermaßen ein liebenswürdiges Heilpflaster. Er erhielt den Titel
außerordentlicher Professor. Schon anderthalb Jahre später wurde er
etatmäßig.
Doktor Max Perthes, etatmäßiger außerordentlicher Professor an
der Universität ..., erster Assistent an der Chirurgischen Klinik und
stellvertretender Leiter. Wie hübsch das klang! Er hatte Karriere
gemacht ...
18
Der Kindergarten in der Bergfelderstraße gedieh.
Im ersten Jahr mußte man noch vom Kapital zusetzen. Im
zweiten verdiente man und hätte mehr verdient, wenn nicht eine
Scharlachepidemie die Kleinen ferngehalten hätte. Im dritten hatten,
einer ernsthaften Konkurrenz zum Trotz, Marga und Elli Richthoff
„den” Kindergarten für die Herrchen und Dämchen der besseren
Gesellschaft. Das bescheidene, aber für sie so wichtige Werk war
gelungen.
Nicht zuletzt war es nach wie vor der feste und treue Rückhalt an
den Freunden des einstigen Hauses am Wenzelsberg, der den
Schwestern ihre Stellung auch äußerlich erleichterte. Sie bewegten
sich frei und gleichberechtigt im alten gesellschaftlichen Kreis, und
die Achtung, die sie dort genossen, wirkte auch bei Fernerstehenden
nach. Jene kleinen, oft schmerzhaften Schikanen und
Zurücksetzungen, mit denen die Gesellschaft noch manchmal die
Frauen bedenkt, die sich mutig auf ihre eigenen Füße stellen,
blieben ihnen so gut wie ganz erspart. Die Jahre gaben ihnen in dem
Häuschen an der Bergfelderstraße ein richtiges, behagliches
Heimgefühl, und sie konnten sich ihr Leben ohne die erfrischende
Tätigkeit, ohne die Freiheit innen und außen kaum mehr denken.
Marga war jetzt längst stark und klar genug, um auch die
Erinnerung an die Vergangenheit nicht mehr zu scheuen. Sie
gedachte ihrer Liebe und ihres Leids ohne Bitterkeit. Elli hatte es
lange vermieden, von sich aus an jene Geschehnisse zu rühren. Als
ihr dann zufällig einmal ein Wort entschlüpfte, das auf den Sommer
in der Mühle Bezug hatte, wollte sie darüber forteilen. Aber Marga
knüpfte selbst an ihre Bemerkung an, und seither sprachen sie mehr
als einmal darüber, und je mehr die Zeit sie davon entfernte, um so
geklärter und gelassener. Nicht nur ihre eigenen Gefühle, sondern
auch den Mann, der sie ihr gegeben und genommen, sah sie in
gerechtem und versöhnendem Licht. Sie hatte begriffen, daß jene
Liebe — die Wonne, die sie ihr geschenkt, und das Weh, das sie ihr
bereitet — für sie ein Stück notwendiger Entwicklung hatte sein
sollen: sie wollte keines von beiden missen. Mußte es für ihn nicht
dasselbe gewesen sein? Wenn Elli Perthes' Charakterlosigkeit, seinen
treulosen Verrat, seine Unaufrichtigkeit und unverantwortliche
Schuld mit den ihr eigenen Kraftausdrücken belegte, ließ es Marga
nicht gelten. Ihr gereiftes Urteil verstand gerade das Herbste, das,
was Elli am entschiedensten verdammte: seine jähe Wendung von
ihr zu einer so anders gearteten Frau, einer der Richthoffschen so
unähnlichen und entgegengesetzten Welt. Sie verstand sie aus den
tiefen Gegensätzen seiner damals nur scheinbar, nur mit
Gewaltsamkeit ausgeglichenen Natur. Sie ahnte, was er schon in
seinem Abschiedsbrief angedeutet: Perthes hatte Seite an Seite mit
ihr zu einem höheren, innerlicheren Menschentum emporgestrebt.
Aber er hatte sich über seine Kraft getäuscht, als er den Zwiespalt in
sich niederhalten wollte. Er konnte sein Naturell nicht zum
Gleichschritt mit ihr, und darum auch überhaupt nicht in ihre Bahn
zwingen. Als er das eingesehen, war er mit einem verzweifelten
Entschluß in ein anderes Geleise gesprungen, das ihn nach der
entgegengesetzten Seite führte.
Ob Perthes dort gedieh? Ob er die ihm angemessene Bahn
gefunden? Ob ihn diese Bahn abwärts mitnahm oder auf einem
schweren Umweg auch zu einer Höhe, zu seiner Höhe führte? Vor
solchen Fragen machte Marga halt. Sie wollte nur das Notwendige
auch für ihn als Notwendiges anerkennen und achten. Weiter durfte
sie nicht denken. Das verbot ihr ihr Stolz.
Sie forschte nie nach ihm. Das Äußerliche seines Lebens trug ihr
ab und zu ein Gespräch oder eine Bemerkung anderer zu. Dafür war
die Stadt zu klein, die akademische Gesellschaft, trotz ihrer
verschiedenen, sich gegeneinander abschließenden Sphären zu eng,
als daß es hätte anders sein können. Daß er verheiratet war, daß er
ein oder zwei Kinder hatte, das er sich habilitiert hatte und jetzt
Professor war, das waren Dinge, die sie hörte wie eine Fremde von
einem Fremden. Gleichgültige Dinge, die nicht bis in ihre große Stille
drangen. —
Bei einem kleinen Zwischenfall sollte Marga nach Jahren
beweisen, daß ihr inneres Gleichgewicht kein gemachtes, sondern
ein echtes und dauerndes war.
Es war an einem Vormittag im späten Frühling. Die Kleinen waren
eben aus ihrer fröhlichen Schule abgezogen. Elli und Marga saßen in
behaglichen Liegestühlen im Grasgarten unter den Bäumen, die ihre
letzten Blüten auf die dichten Grasbüschel streuten, und plauderten.
Da meldete das Dienstmädchen, das sie sich jetzt zur ständigen Hilfe
leisten konnten, eine Dame mit ihrem Jungen.
Elli, die die Anmeldungsgeschäfte gewöhnlich erledigte, stand auf
und ging nach vorn.
Das Zimmer zwischen Wohnzimmer und Schulstube diente zum
Empfang. Dort erwartete die Dame sie und erhob sich bei ihrem
Eintritt vom Sofa, während ein Junge, ein kräftiges Bürschchen mit
großen schwarzen Augen, einer kecken Stupsnase und zottigen,
schwarzen Haaren, sehr resolut auf seinem Stuhl sitzen blieb. Elli
glaubte sie nicht zu kennen.
„Frau Alice Perthes!” stellte sie sich mit leichtem Nicken vor. „Ich
komme, um Ihnen meinen Jungen vorzuführen,” fuhr sie in kühlem,
etwas herablassendem Ton fort. „Der kleine Kerl soll etwas Räson
lernen — er wird meinem Mann und mir zu wild.” Das „meinem
Mann” erfand sie. Denn Perthes wußte nichts von diesem Schritt
seiner Frau. Sie folgte da nur ihrer Laune und dem Bedürfnis, durch
das Kind nicht belästigt zu sein.
Elli war zuerst betreten. Sie erinnerte sich jetzt sofort dieses
beweglichen Gesichts mit seinen glimmenden Augen, der gestülpten
Nase, dem spottsüchtigen Mund, das ihr ja vom Sehen bekannt war.
Es war für sie eine ausgemachte Sache, daß sie diese Frau Perthes
mit ihrem Sprößling abwimmeln würde. Mit der Sicherheit, mit der
Frauen, besonders solche, die keinen Grund haben, sich wohlgesinnt
zu sein, einander durchschauen, erriet sie, daß von Alices Seite auch
eine frivole Neugierde mit im Spiel war. Sie wollte sich bei der
Gelegenheit so en passant mal diese Richthoffs, von denen die eine
ihres Mannes Flamme gewesen, etwas näher ansehen. Das prickelte
in den umherschweifenden Augen ...
„Sie kommen leider zu keiner ganz glücklichen Zeit, gnädige
Frau,” erklärte Elli korrekt, aber rund heraus, nachdem sie ihr
gegenüber Platz genommen.
„Wieso?” fragte Alice.
„Wir haben für das laufende Halbjahr schon so viele Kinder
angenommen, daß es beim besten Willen nicht gehen wird.”
„Sie werden mich doch nicht abweisen wollen, Fräulein?” Alice
lächelte und sah Elli malitiös und ungläubig an. Sie hatte heraus, daß
es sich um eine Ausrede handelte und war jetzt erst recht
entschlossen, beharrlich zu sein. Sie versuchte sich noch
entschiedener in der gönnerhaften Selbstgewißheit der großen
Dame. Man hatte ihr den Richthoffschen Kindergarten empfohlen.
Sie ließ die Namen von Exzellenz Papa, den gräflichen Herrschaften
von Hüningen beiläufig einfließen und wollte Elli offenbar klar
machen, daß die beiden Fräuleins sich nur geschmeichelt fühlen
dürften, wenn sie ihren Jungen brächte. Sie stellte die Protektion
gewisser erster Kreise in verlockende Aussicht.
Das hieß bei Elli gerade Öl ins Feuer gießen. Sie wäre am liebsten
grob geworden. Die hochtrabende Manier, die Alice sich gegen die
Töchter eines Kollegen ihres Vaters herausnahm, reizte sie. Doch sie
besann sich. Sie ließ Alice ausreden. Der Schalk in ihr siegte über
den Unmut, den sie empfand.
„Aber das hilft ja alles nichts,” sagte sie dann vergnügt. „Und
wenn Sie uns einen leibhaftigen Prinzen brächten, gnädige Frau, wir
haben uns mal vorgenommen, mehr Kinder einstweilen nicht
aufzunehmen. Es wird nicht gehen!” Sie wechselte mit Frau Perthes
einen Blick, der diese nicht im Zweifel lassen konnte, daß ihr die
Exzellenzen und Grafen ganz und gar nicht imponierten.
Der Junge, der aufmerksam zugehört hatte, kletterte von seinem
Stuhl herunter. Ihm schien die Sache jetzt reif für seine persönliche
Einmischung. Er erklärte auf eigene Faust, sehr flott und
selbstbewußt: „Denn nicht! Komm, Mama! Ich will fort!”
Das „Denn nicht” hatte er jedenfalls von seiner Mama gelernt.
Alice selbst, die über die Entscheidung ihres Jungen boshaft lächelte,
hätte am liebsten auch mit einem geringschätzigen „Denn nicht” das
Feld geräumt. Aber ihre ursprüngliche Absicht, den Jungen, der im
Haus lästig wurde, los zu werden, war ihr nun doch zu wichtig.
Gewandt wie sie war, unterdrückte sie ihren Ärger. Sie gab dem
Kleinen einen leichten Klaps für seine Ungezogenheit und verlegte
sich aufs Bitten. Sie wurde beinahe zutraulich. Allerhand Reisen
standen ihr bevor. Sie war gesellschaftlich sehr in Anspruch
genommen. Sein Vater hatte wenig oder gar keine Zeit für den
Jungen. Das Kinderfräulein würde nicht immer mit ihm fertig. Kurz:
sie wünschte, daß er einige Stunden am Tag unter guter Aufsicht
war und etwas Sitzleder bekam.
„Ich denke, Sie werden ihn trotz der Überfüllung nehmen!”
schloß sie, bedeutend liebenswürdiger und zuvorkommender, als sie
begonnen.
Elli blieb gleichwohl fest. Sie wollte nicht.
Für sich und noch mehr für Marga sträubte sich ihr Gefühl gegen
die Aufnahme gerade dieses Perthesschen Jungen, die überdies nur
dem eigensüchtigsten Wunsch der Mutter dienen sollte. Sie machte
kein Hehl daraus, daß ihre Schule den Kindern nicht das Heim
ersetzen könne noch wolle. Zudem schien ihr der Junge — so
aufgeweckt und kräftig er war, mochte er noch nicht vier Jahre
zählen — entschieden zu jung. Sie nahmen grundsätzlich keine zu
kleinen Kinder mehr. Und dann führte sie noch einen ganzen Wall
von anderen Gründen auf, um nur unter keinen Umständen
nachgeben zu müssen.
Alice Perthes war im Begriff, mit einer unartigen Wendung nun
doch die Verhandlung abzubrechen und ihrerseits zu danken, als sie
nebenan, in der Klasse, zu der die Tür angelehnt war, Schritte hörte.
„Elli,” ertönte es von dort mit gedämpfter, fragender Stimme.
Es war Marga, die sich das lange Ausbleiben Ellis nicht erklären
konnte und sie an einen Besuch bei Wilmanns, den sie beide vor
Tisch noch zu machen hatten, erinnern wollte.
Elli und Alice erhoben sich gleichzeitig.
Elli hatte keinen anderen Gedanken, als dies Zusammentreffen zu
verhindern.
Aber Alice war die Besonnenere und Entschlossenere.
„Ihre Fräulein Schwester wird vielleicht nicht ganz so hartnäckig
sein!” meinte sie lächelnd.
Auf die Gefahr hin, unfreundlich zu werden, wollte Elli
dazwischen treten. Aber Frau Perthes hatte schon die angelehnte
Tür geöffnet. Und da stand Marga, ihr gegenüber, nichts ahnend,
ruhig, nur nach dem Geräusch der Stimmen und Bewegungen in ihr
Dunkel lauschend.
Wie um sie zu schirmen, flog Elli an dem verhaßten Eindringling
vorbei auf die Schwester zu. Sie war bleich vor ohnmächtiger Wut.
„Marga, ich sagte der Dame schon, daß wir unmöglich, so leid es
uns tut, noch ein Kind annehmen können,” stieß sie erregt hervor.
Sie hatte ihren Arm von rückwärts auf Margas Schulter gelegt und
suchte ihr durch den Druck ihrer Hand irgend ein Zeichen zu geben.
Der kleine Junge, der erst neugierig vorgetreten war, zog sich vor
den fremden, blicklosen Augen Margas mit der allen Kindern eigenen
Scheu vor dem Ungewohnten hinter seine Mutter zurück.
Alice, die die Blinde mit einem Gemisch von Interesse und
Befriedigung durch ihren bekannten Blick von unten nach oben
gemessen, ließ sich durch nichts beirren.
„Sie vergessen Ihrer Fräulein Schwester zu sagen, wer ich bin,”
bemerkte sie halb höflich, halb spöttisch zu Elli. Sie war nicht
bösartig. Aber in diesem Moment verfiel sie dem kleinen,
niederträchtigen Weibsteufel, dem Frauen unter sich und zumal
unter ähnlichen Umständen kaum wehren können. „Alice Perthes”,
sagte sie mit eigentümlich klangvoller Betonung, die sonst ihrer
hastigen, schnoddrigen Redeweise durchaus fremd war.
Das Geschoß war abgeschnellt.
Elli ließ trostlos, empört die Arme sinken. Sie hatte es nicht
hindern können. Unruhig und ängstlich wanderten ihre Blicke
zwischen Alice und der Schwester hin und her.
Der kleine Benno stand jetzt mit seinen großen, schwarzen
Augen mutig neben seiner Mutter, fuchtelte mit seinem
Spazierstöckchen und setzte dann eigenmächtig den breitrandigen
Strohhut auf, den er vorher in der Hand gehalten.
Marga hatte die Farbe gewechselt. Ihre Augen hatten sich auf
den Boden geheftet. Sie fühlte auf sich den herausfordernden Blick
dieser Frau, die sie nicht kannte und die ihr das Glück ihres Lebens
zerstört hatte. Alte Gefühle des Schmerzes und der Bitterkeit
drangen in einer heißen Welle zu ihrem Herzen und zerkrampften es,
als wollten sie ihren Mut, ihre Haltung vernichten. Aber die Welle
brach sich an ihrem Willen.
Einige Sekunden hatte das unbehagliche Schweigen gedauert.
„Ich glaube, wir könnten den kleinen Mann doch noch
aufnehmen, Elli,” sagte Marga dann gelassen und fest. Nur ihr
bewegterer Atem ließ eine vorausgegangene Erschütterung erraten.
„Meine Schwester hat wohl vergessen, daß heute morgen ein
Mädchen abgemeldet wurde. Es wird gehen, nicht wahr, Elli? Wenn
Sie uns den Jungen anvertrauen wollen, bitte ich darum, gnädige
Frau!” Sie sprach jetzt so klar und korrekt, als gelte es eine
abgemachte, rein geschäftliche Sache höflich zu beendigen.
Alice war nicht leicht zu verblüffen. Aber diese Ruhe und sanfte
Bestimmtheit, wo sie eine pikante, demütigende Verwirrung erwartet
hatte, war so sehr der Gegensatz ihres eigenen zerfahrenen Wesens,
daß sie eine gewisse Verlegenheit nicht unterdrücken konnte.
Mit einem höflichen „Ich danke Ihnen, ich werde meinen Jungen
morgen schicken,” verbeugte sie sich und nahm den Kleinen bei der
Hand.
Vor der Tür drehte sie sich noch einmal um.
„Um wieviel Uhr doch gleich?” fragte sie mit einer halben
Wendung des Gesichts, mit dem wiedergewonnenen Ausdruck ihrer
unzerstörbaren Nonchalance, der zeigte, daß ihre Gedanken über
dies Intermezzo schon hinwegeilten.
„Im Sommer um neun Uhr,” gab Marga zurück.
Als sich die Tür hinter Alice Perthes geschlossen, stürzte Elli
außer sich an Margas Hals.
„Aber Margakind! Was hast du da gemacht?! Wie konntest du
diese abscheuliche Person, die ich glücklich abgewimmelt hatte,
diesen verzogenen, ungebärdigen Bengel von einem Jungen — ich
versteh' dich nicht! Ich mache nicht mit! Ich will nicht! Wie konntest
du nur?” Sie zitterte vor Aufregung und Empörung.
Marga zog sie mit einem verlorenen Lächeln noch enger an sich.
„Verstehst du das wirklich nicht, Kleinchen?” fragte sie leis.
Und Elli sah zu ihr auf, in ihre Augen, die mit der Sicherheit eines
Sehenden eine weite unendliche Ferne faßten, mit der ihre Stille eins
war.
Und sie verstand Marga ...
Am anderen Morgen kam der kleine Perthes mit seinem
Kinderfräulein.
Er war wild, jähzornig, eigenwillig. Aber er war nicht der erste
seiner Art und nicht der letzte. Zwei, drei Wochen konnte das
vielleicht dauern. Dann saß er da und lauschte, sprang und sang,
jubelte und spielte, ein harmloses Kind wie die anderen. Was
bedeutete da noch sein Name?
19
Der Geheime Rat hatte seinen Schwiegersohn im Automobil an
die Bahn gebracht.
Perthes war zu einer Konsultation nach Konstanz berufen
worden. Da Hupfeld in diesen Tagen seinen Sommerurlaub antreten
und zunächst auf Nieburg, späterhin irgendwo in der Schweiz oder
Tirol möglichst ungeschoren sein wollte, gab es zwischen beiden
noch allerhand zu besprechen.
Seite an Seite schritten sie auf dem Bahndamm auf und ab, ganz
in ein berufliches Gespräch vertieft.
Hupfelds hohe Gestalt, mit den Jahren etwas vornübergebeugt,
aber immer noch sehr repräsentativ mit dem glatten, ebenmäßigen
Gesicht, den gebietenden Gebärden, dem verjüngenden blauen
Jackettanzug, machte Aufsehen wie immer. Der nicht ganz so große
Professor Perthes in seinem Reisehabit aus grauem Loden wirkte
nicht so distinguiert und hatte nichts von der weltmännischen
Liberalität der Exzellenz. Die frühere gesunde Bräune seines Teints
hatte einen bleiernen Ton bekommen. Der Ausdruck der Züge hatte
die einstige jugendlich-unbekümmerte Brigantenhaftigkeit verloren.
Ein starrer Ernst gab ihm auf dem ersten Blick einen abweisenden,
fast hochmütigen Anschein. Doch dagegen zeugte das tiefe Auge,
das noch immer, wenn auch selten und mit Beherrschung, in
dunklem Feuer aufleuchten konnte. Wenn er mit wiederholter,
hastiger Gebärde die Mütze lüftete und sich über die dichten,
schwarzen Haare fuhr, las man auf der Stirn aus starren, rissigen
Falten ebenso viel rastlose geistige Arbeit wie in sich verschlossene
Bitternis. Der Mund hätte die gleiche Sprache gesprochen, wäre er
nicht in dem krausen Bart zurückgetreten, dem sich da und dort
frühgraue Fäden eingesponnen hatten.
Es wurde zum Einsteigen abgerufen.
Hupfeld und Perthes verabschiedeten sich mit einem
Händedruck, der mehr korrekt als herzlich war. Während der D-Zug
aus der Halle rollte, schritt der Geheime Rat den Bahnsteig zurück
nach seinem Automobil. Auf der Fahrt zur letzten Fakultätssitzung
des Sommersemesters saß er nachdenklich in seiner Ecke. Ohne
einen Gruß zu versäumen, dachte er an seinen Schwiegersohn. Nach
dem Ausdruck seiner Mienen waren es nicht ausschließlich
freundliche Gedanken, die ihn beschäftigten. Diese Konsultationen
nach auswärts, die durch den steigenden Ruf des Jüngeren sich
mehrten, begannen ihm lästig zu werden. Seine Eitelkeit, die
wahrhaftig in einem Leben voll glänzender Erfolge auf ihre Kosten
gekommen war, witterte längst in Perthes den Kommenden, der ihn,
den Gehenden, vielleicht abzulösen berufen war. Er hatte die
Fähigkeiten des um mehr als eine Generation jüngeren Mannes
„entdeckt”, wie er sich schmeichelte. Er hatte ihn „gemacht”.
Vielleicht würde er gegenüber seinem Schwiegersohn Regungen der
Mißgunst doch unterdrückt haben; vielleicht hätte er sich sogar mit
den Jahren direkt überwinden und seinen Nachfolger selbst auf den
Schild heben können. Aber die Ehe seiner Tochter — das konnte
auch ihm, dem Optimisten, längst kein Geheimnis mehr sein — war
nicht, was er sich und Alli gewünscht hatte. Der junge Mann, den er
„gemacht” hatte, entwickelte einen Charakter, dem nach seiner
Auffassung die Weite und Freiheit weltmännischen Denkens abging.
Als ewig nachgiebiger Vater stand er durchaus auf seiten seines
Kindes. Alices skrupellose Lebenslust war ein Zug seines eigenen
Wesens, wenn er auch in ihm sich stilisiert hatte. Ihre spitzbübische,
spottsüchtige, wechsellüsterne Art zeugte von Humor, Gesundheit
des Geistes, jugendlicher Frische. Dagegen sah er bei Perthes eine
Rechtschaffenheit, ja trockene Ledernheit — besonders in
wirtschaftlichen Fragen, die ihm kleinlich vorkam. Er traf sich mit Alli
durchaus in einer Auffassung, die in jeder konsequenten
Folgerichtigkeit und Festigkeit nur Pedanterie und Spießertum
belächelte. Wie oft beklagte er in seinen Gesprächen mit der
körperlich immer schwerfälligeren Mama Hupfeld das „arme Kind”.
Bei dieser Klage war er auch in seinen Reflexionen angelangt, als
sein Auto vor der Universität hielt. Er versäumte trotzdem nicht, dem
strammen Pedellen, der mit gezogener Mütze in Front stand, huldvoll
zuzunicken, während er ausstieg. Durch die Gruppen grüßender und
starrender Studenten schritt er fürstlich nach dem Fakultätszimmer,
wo die Korona der Kollegen das große Tier noch eben
durchgehechelt hatte, nun aber mit übertriebener Ehrerbietung
empfing. —
Perthes fuhr inzwischen in seinem D-Zug südwärts.
Er saß allein in seinem Abteil. Reichlich mit wissenschaftlichem
Lesestoff versehen, kümmerte er sich nicht um die sommerlich-frohe
Natur vor den Fenstern. Er war ja früher ein leidenschaftlicher
Naturliebhaber gewesen. Wie oft hatte er auf einer Fußwanderung,
wie oft rudernd und sportbeflissen sich seinen seelischen Gleichmut
wieder herzustellen gesucht. Er hatte sich diese Naturschwärmerei
abgewöhnt. Wie er sich im Lauf der Jahre auch die seelischen
Aufregungen abgewöhnt hatte. Nicht von heute auf morgen; auch
nicht mühelos und leicht. Es hatte Kämpfe gekostet. Sein explosives
Temperament gab sich nach den ersten Enttäuschungen seiner Ehe
nicht zufrieden: Perioden der Gleichgültigkeit wechselten mit solchen
lauter, zorniger Auflehnung; Perioden blinder Verliebtheit mit
anderen, in denen er Alice durch Güte, Vernunft, eiserne Strenge
erziehen wollte. Vorübergehend meinte er die Quelle alles Übels in
der Umgebung zu sehen, die ihn selbst zuerst bestochen hatte. In
sich hatte er längst die Freude an all dem blendenden, geselligen
Treiben ausgerottet. Dabei half ihm die wachsende Arbeit. Aber es
kostete ihn doch mehr, als er sich je gestand. Er hatte von Natur
nichts weniger als die Anlage zur Einseitigkeit. Eine gewisse
Besonderheit hatte er immer geliebt. Doch sie war himmelweit
entfernt von jenem Philistertum, das man mit Recht so nannte. Um
Alices willen stritt er gegen dies Milieu mit seiner öden
Oberflächlichkeit, seinem Taumel der Mode und Sensation, seiner
erlogenen Freiheit und Götzendienerei des Geldes, der
Grafenkronen, der Flottheit und Zeitgemäßheit um jeden Preis. Doch
sie — sie dachte nicht daran, sich ihrem Element abspenstig machen
zu lassen. Mit ihrer Geschmeidigkeit, ihrer mehr als vorurteilslosen
Bosheit, ihrem girrenden Lachen widerstand sie allen Versuchen, sie
zu ändern. Sie wollte so sein, wie sie war, weil sie gar nicht anders
konnte. Sie entwand sich ihm und schnitt eine Grimasse gegen seine
besten Absichten. Die Erkennung, die dauernde und absolute,
vollendete sich. Der Räuberhauptmann war ihr ein gräulicher
Philister, ein lebensfeindlicher Grämling geworden. Hinter dem
Irrlicht sah er, nüchtern und für immer, das seelenlose Nichts. Noch
eine Spanne argwöhnischen Belauerns — und eines ging kühl und
fremd neben dem anderen, überließ es seiner Torheit, lebte nur noch
für sich und in sich selbst.
Alice war nicht zu entwickeln und entwickelte sich nicht. Aber er,
Perthes, vollzog mit sich eine langsame, qualvolle Wandlung. Die
Gebundenheit, unerbittlich wie die öde ziehenden Jahre, zwang ihn
zu einer strengen Beherrschung, die sich im Anfang von Stunde zu
Stunde üben mußte. Er lernte mit Schmerzen den Schritt, er, dessen
gegensatzvolle Natur nur immer den Sprung gekannt hatte. Ohne
seinen Beruf, ohne die peinlich gepflegte, später natürliche und
echte Liebe zur Wissenschaft hätte er diese aufreibende Wandlung
nicht durchgehalten. Er wäre verzweifelt und verkommen. So war
ihm die Umbildung gelungen. Er ging in seinem nur geistigen
Dasein, seiner einseitigen Starre eines Gelehrten wie in einer
Rüstung. Freilich war sie schwer; sie litt kein Rechts und Links, keine
heftige Bewegung nach außen und innen. Seine Sinne hatten zu
schlafen und erst recht seine Seele. Da gab es keine Vergangenheit.
Da gab es keine Natur, wie die, die sonnig mit tannenschwarzen
Tälern, mit bunten Wiesen, mit goldgelben Kornhängen am Fenster
des Zuges vorbeiflog. Er war blind. Viel blinder als jemand, den er
gekannt — vor langer, langer Zeit ...
In Konstanz hatte Perthes noch am Abend die Konsultation, zu
der man ihn gerufen.
Am anderen Morgen rettete er dank seiner richtigen Diagnose
und der Kraft seiner Hand das Leben eines zwanzigjährigen jungen
Menschen. Mit dem gutmütigen Lächeln, das seine starken weißen
Zähne unter dem Bart vorblinken ließ, diesem Lächeln, das er so
selten und nur noch im Beruf, in einem Moment selbstvergessener
Zufriedenheit fand, konnte er dem geängstigten Vater im Vestibül
der Klinik die nach menschlichem Ermessen geglückte Rettung
mitteilen.
Er entzog sich den lebhaften Danksagungen. Aber sie klangen
mit der Freude über die gelungene Operation doch noch in ihm
nach, als er später durch die alten, ehrwürdigen Straßen von
Konstanz schlenderte. Er mußte einen Abendzug abwarten. Was er
sich sonst kaum vergönnen wollte und konnte, ein paar müßige
Stunden, sie wurden ihm hier aufgedrängt. Er hatte es seit langem
aufgegeben, seinen Stimmungen nachzuhängen. Aber auf der
Terrasse des Inselhotels und nachher am Hafen, beim Blick auf die
sanfte, klare Wasserfläche, überraschte ihn, den Entwöhnten, ein
weiches, versöhnliches Gefühl. Einer jener Augenblicke, in denen ein
Hauch der Ewigkeit alle Bitterkeit von Menschen und Verhältnissen
wegzuspülen scheint. Er überließ sich halb schmerzlichen, halb
süßen Träumereien. Gab es keine, auch nicht eine Möglichkeit des
Glücks, in der er und die Frau, die er nun einmal zur Gefährtin seines
Lebens gemacht, sich zusammen finden konnten? Es fiel ihm ein —
woran er bis jetzt nicht gedacht —, daß Alice nach ihren letzten
Nachrichten vielleicht kaum einige Stunden entfernt war. Sie wollte,
wie sie geschrieben, acht Tage einer Einladung der Gräfin Hüningen
folgen, die auf der Schweizerseite des Bodensees ein Landhaus
besaß. Er rechnete die Tage nach. Seine Frau, die in Straßburg bei
dem Bruder ihres Vaters, dem Obersten Hupfeld und Cousine Hilla zu
Besuch war, mußte jetzt aller Wahrscheinlichkeit nach drüben,
jenseits des Sees, bei den Hüningens sein.
Eine fiebrige Unruhe gesellte sich zu seiner Stimmung.
Wenn er, so wie jetzt mit sich, mit ihr spräche? Wenn sie beide es
doch noch einmal, in Ruhe und Vernünftigkeit, wie zwei Leute, die
sich kennen und keine Illusionen mehr haben, versuchten, zu einer
erträglichen Einigung zu kommen? Zu einem kühlen, sachlichen
Frieden, aber doch zu einem Frieden! Schon um des Jungen willen.
Für den er keine Zeit hatte, und den er doch zärtlich liebte. Der
zwischen ihnen verkümmern und verderben mußte ...
Seiner aufwallenden Stimmung folgend, saß Perthes eine Stunde
später auf dem Verdeck eines Dampfers. Er wußte, daß er nicht
„klug” handelte, sondern sich nur von einer jähen, unklaren Regung
bestimmen ließ. Vielleicht würde er Alice gar nicht treffen; oder sie
würde seinen Besuch, seine Vorschläge mit Achselzucken als
Sentimentalitäten beiseite schieben, gar in seinem Überfall eine
mißtrauische Absicht sehen. Aber die abendliche Fahrt auf dem
sanftbewegten, blauen See mit dem Blick auf ferne Alpengipfel hielt
einen Schimmer jugendlicher Vertrauensseligkeit in ihm wach.
In Rorschach stieg er aus.
Zu Fuß ging er, nach den nötigen Erkundigungen, aus der Stadt
am Strand entlang.
Als er die Villa des Grafen Hüningen gefunden, zögerte er beim
Anblick der herabgelassenen Jalousien, die dem Haus hinter dem
hübschen, herrschaftlichen Garten ein verlassenes Aussehen gaben.
Er zog an der Torklingel.
Der Gärtner öffnete. Er berichtete, die Herrschaften wären
gestern abgereist.
Perthes war niedergeschlagen und ernüchtert. Er nannte seinen
Namen und erkundigte sich, ob seine Frau dagewesen sei. Die Frau
des Gärtners, die dazukam, wußte Bescheid. Die Dame, die bei den
gräflichen Herrschaften zu Besuch gewesen, war einen Tag früher
als die Herrschaften selbst abgereist. Wohin wußte sie nicht. Aber
richtig! Daß sie das nicht vergaß! Das traf sich ja gut: eine Depesche
wäre für die Dame heute morgen noch abgegeben worden. Da sie
keine Adresse gehabt, hätte sie sie einstweilen liegen lassen
müssen. Die Gärtnersfrau holte sie. Perthes nahm sie gleichgültig an
sich, grüßte und ging mechanisch zurück nach der Stadt.
Die Stimmung, die ihn hergebracht, war mit der Enttäuschung
verflogen. Wahrscheinlich war Alice wieder nach Straßburg
zurückgekehrt. Doch er wußte nichts Genaueres über ihre Pläne. Er
öffnete die Depesche, die ihm vielleicht darüber Aufschluß gab. Sie
lautete in lakonischer Kürze: „Bin morgen Baden-Baden. Ballonfahrt
Dienstag.” Der Ort der Aufgabe hatte französischen Klang. Die
Nachricht kam wohl aus der Westschweiz. Eine Unterschrift fehlte.
Wenn das Wort Ballonfahrt nicht gewesen wäre, hätte Perthes
das Telegramm so gleichgültig wieder zu sich gesteckt, wie er es
mitgenommen und gelesen. So öffnete, las und schloß er es zu
wiederholten Malen. Er kümmerte sich so gut wie nicht mehr um
das, was Alice tat oder ließ. Aber zwei Dinge hatte er ihr, als sich
danach ihre Gelüste regten, ein für allemal verboten. Rennen und
Ballonfahrten. Er hatte erfahren, daß sie im Frühjahr in Iffezheim am
Totalisator gespielt hatte. Wie er sie kannte, gab es für sie keine
gefährlichere Verlockung als das Spiel, und da die Ausgaben das
einzige waren, über das er wachte, verbot er ihr den Besuch von
Pferderennen aufs entschiedenste. Ebenso wußte er, daß sie sich
längst sehnlich wünschte, an einer Ballonfahrt teilzunehmen. Diesen
Wunsch verweigerte er ihr, nicht nur weil der Ballonsport ihm zu
kostspielig war, sondern weil er die Mutter seines Kindes nicht
leichtsinnig der Gefahr ausgesetzt wissen wollte. Die Depesche, die
ihm jetzt in die Hände geraten war, verriet ihm, daß sie hinter
seinem Rücken nicht daran dachte, seinen Willen zu respektieren.
Gern hätte sich Perthes auf der Rückfahrt mit dem Dampfer nach
Friedrichshafen, und von da mit dem Nachtschnellzug heimwärts,
wieder nichts sehend und nichts hörend, in seine gelehrte
Fühllosigkeit, seinen dichten, schweren Panzer gehüllt. Doch immer
wieder tauchte diese Depesche vor ihm auf. So gewiß, als sie
unbekümmert um sein Verbot, sich zu einer Ballonfahrt verabredete,
würde sie auch sicherlich an den Rennen teilnehmen und spielen, so
oft sie wollte. Wenn er erst dahinter kam, daß ihre Ausgaben wieder
ins Ungemessene gingen, gab es Mittel und Wege, ihr seinen Willen
deutlich zu machen. Möglich auch, daß sie sich nach wie vor von
ihren Eltern manches bestreiten ließ: er hatte die beschämende
Kontrolle darüber längst aufgegeben. Nur mit seinem Willen durfte
das nicht sein. Es war auch vollends einerlei, ob sie Ballon fuhr oder
nicht! Und doch — jetzt — wo er sie durch einen Zufall ertappte,
gerade bei einem Sport, den er ihr streng versagt hatte — schaffte
die törichte Nachricht in ihm. Wenn Alice alles tat, was sie wollte,
warum er nicht? Noch vor einigen Tagen hatte er den Brief einer
auswärtigen medizinischen Fakultät erhalten, der ihn — einstweilen
als Extraordinarius, aber mit der sicheren Aussicht auf das Ordinariat
— an eine norddeutsche Universität berief. Er hatte sich die
Angelegenheit noch kaum überlegt. Wollte sie auch nicht weiter
überlegen, denn er mußte, wollte er nicht mit seinem
Schwiegervater, mit Alice einen Sturm bestehen, doch ablehnen.
Aber mußte er denn wirklich? Wenn seine Frau handelte, wie es ihr
beliebte — brauchte er sich seinen Weg durch Rücksichten verlegen
zu lassen? In dem brausenden, hämmernden Nachtzug, im
Gedanken an diese malitiöse Depesche, erwachte doch noch einmal
sein Widerstand gegen die ewige Unfreiheit, der er verschrieben sein
sollte. Er hatte heute nachmittag, in einer schwächlichen Stimmung,
von einem kleinstmöglichen Glück geträumt. Mit Träumen war da
nichts ausgerichtet! Wenn er handelte?! Wenn er, allen
Widerständen zum Trotz, seine Frau nun doch noch aus ihrer
unseligen Umgebung herausriß und verpflanzte? Wenn nicht mehr zu
seinem und ihrem Heil, so zu dem des Jungen! Darüber brütete er ...
Daheim, nach einigen Stunden Schlafs, wurde sein Entschluß
fest. Er wollte die Gärung, die mit der Unterbrechung seines
mechanischen Arbeits- und Lebensganges in ihm erregt worden war,
benutzen. Er knüpfte Verhandlungen mit der auswärtigen Fakultät
an, die ihn rief. Als er den nötigen Brief abgesandt, ging er
elastischer als sonst in seine Klinik.
Merkwürdig — die belanglose Depesche, die er vom Bodensee
mitgebracht, verfolgte ihn weiter. Schließlich konnte es ihm
gleichgültig sein, mit wem sich Alice in Baden-Baden traf. Mit den
Hupfelds aus Straßburg, mit ihrem Bruder oder mit anderen
Bekannten. Nichtsdestoweniger beschäftigte ihn die Frage.
Auf dem Nachhauseweg traf er gegen Abend den Grafen
Hüningen. Er sprach fast nie mit dem wappennärrischen
Gardeüberrest, der so geschäftig und gelehrt tat. Heute fragte er ihn
höflich nach dem Befinden der Gräfin. Sie war wohlbehalten mit
Edith Hammann zurückgekehrt. Der Graf selber war den Seinigen
entgegengefahren und hatte sie in Friedrichshafen abgeholt. Er
sprach auch von dem Besuch Alices in Rorschach. Perthes schämte
sich fast zu fragen, wohin seine Frau gereist sei. Er murmelte eine
unverständliche Ausrede und tat es doch. Alice hatte auf Nachrichten
aus Freiburg gewartet, wie der Graf sich entsann. Als sie nicht
eintrafen, war sie aufs Geratewohl zu ihrem Bruder gereist.
Nun wußte Perthes, daß sie sich höchstwahrscheinlich mit dem
Leutnant nach Baden-Baden verabredet hatte. Von ihm mochte die
Depesche sein.
Zu seiner Verwunderung erhielt er noch am selben Abend eine
Ansichtskarte von seinem Schwager Moritz aus dem Engadin, von
einer Hochgebirgstour. Also konnte der es doch nicht sein, mit dem
sie zusammentreffen wollte. War sie gar nicht nach Freiburg gereist?
Sondern direkt nach Baden-Baden gefahren oder ... Er sträubte sich
gegen seine alberne Grübelei. Aber so töricht er sich vorkam, er
hatte keine Ruhe.
Sehr gegen seine Gewohnheit ging er am nächsten Nachmittag
mit seinem Jungen um die Teestunde nach Stift Nieburg. Man nahm
ihn freundlich auf. Besonders der Kleine war stets willkommen und
wurde stets mit Kuchen vollgestopft. Wo Alice gerade war, wußten
Hupfelds nicht. Sie hatten zuletzt eine Karte vom Bodensee gehabt.
Die Gräfin Hüningen kam zum Tee. Sie brachte Grüße von Alice und
erzählte Wunder von ihrem famosen Aussehen.
Dann sprach man von unzähligen Dingen, die Perthes nicht
interessierten, die er aber aus Artigkeit mit anhörte.
Der Geheime Rat fragte die Gräfin beiläufig nach Professor
Hammann, ihrem Schwiegersohn. Sie wußte nicht viel von ihm.
„Überarbeitet” wie er gewesen, hatte er einige Wochen vor
Semesterschluß seine Vorlesungen und Studien abgebrochen und
Touren in der französischen Schweiz gemacht. Auf dem Genfer See
hatte ihn eine Regatta gelockt. Der Sport war nun einmal sein
Steckenpferd. Und auf der Rückreise wollte er, so viel sie wußte,
noch ein oder zwei Ballonfahrten in Baden-Baden mitmachen. —
Edith, seine Frau, war, da sie einem freudigen Ereignis entgegensah,
mit den Hüningen am Bodensee gewesen und jetzt daheim —
indolent und schön wie immer, wie die Gräfin selbst lachend
hinzusetzte.
Es war an sich nichts Besonderes, was Perthes auf Nieburg hörte.
Und doch versetzte es ihn in gesteigerte Unruhe. Daß die Depesche
an Alice aus der französischen Schweiz kam, konnte der reine Zufall
sein. Daß sie und Hammann sich eventuell mit dritten Bekannten in
Baden-Baden zu einer Ballonfahrt trafen, war möglich, aber für ihn
jedenfalls uninteressant.
Und doch konnte er es auf dem ganzen Heimweg von Stift
Nieburg nicht unterlassen, seine einmal entfesselte Spürkraft weiter
zu üben. Er spottete über sich und seinen spielerischen Eigensinn
und kam gleichwohl nicht davon ab.
Der kleine Benno, den er an der Hand hatte, war sehr
ungehalten, daß sein Papa ihm oft gar keine oder ganz
unzureichende Antworten auf seine zahlreichen, höchst wichtigen
Fragen gab. Er rief gebieterisch. Wenn Perthes dann aufschrak aus
seinem Sinnen, war er wütend über den Jungen und über sich. Was
ging denn mit ihm vor? Wollte er sich zum Detektiv ausbilden?
Wollte er einen neuen Giftstoff in seine ohnehin vergifteten
Beziehungen zu Alice hineinpraktizieren? Entdeckte er in sich ein
Talent zur Eifersucht? Jetzt noch, wo ... Verächtlich biß er sich auf
die Lippen. Es fiel ihm die Geschichte ein, die ihm seine Frau
seinerzeit als Tauschobjekt für seine mißlungene und abscheuliche
Beichte über sich und Marga Richthoff angeboten und später auch
wirklich erzählt hatte. Wahrscheinlich kam er darauf, weil Benno,
jetzt schon zum dritten Mal eine ihm sehr bedeutend scheinende,
Perthes sehr ungelegene Erzählung aus dem Richthoffschen
Kindergarten mit wachsender Bestimmtheit vortrug. Er hörte
daneben deutlich das saloppe Tauschgeständnis, das Alice damals
abgelegt: wie sie mit diesem kleinen, patenten Hammann, dem gut
gepflegten Sportsmann und Auchbakteriologen, geflirtet hatte; wie
sie sich beide ganz nett hätten leiden können, aber eines Tages bei
dem Gedanken an Verlobung und Heirat „auseinandergelacht”
hätten. Ob es für Alice ein größeres Vergnügen hätte geben können,
als zu wissen, daß er sich in solchem Zusammenhang an ihre
Geschichte erinnerte? Daß er sich nun auch noch auf die
abgegriffene Spezialität der Eifersüchtelei verlegen wollte? Das
Vergnügen wollte er ihr denn doch nicht gönnen! —
Daheim ließ Perthes den Jungen zu Bett bringen und warf sich
entschlossen auf seine Arbeit.
Keine Minute länger durfte diesem müßigen und kläglichen
Spintisieren gehören.
Er arbeitete bis tief in die Nacht. Erfüllt von wissenschaftlichen
Ideen, völlig abgezogen von den Torheiten der letzten Tage, legte er
sich zu Bett.
Er schlief sofort ein, mit der bleiernen Schwere, die der
erschöpfte Kopf gab ...
Nach wenigen Stunden fuhr er beklommen in die Höhe. Ein
Traum, ein hämischer, raffinierter Traum hatte ihn aufgeschreckt.
Alle Klügeleien, seine eingestandenen und verborgenen
Verdächtigungen hatte dieser Traum mit folgerichtiger Teufelei zu
einem höhnischen Bild vereinigt, das ihn mit seiner alpdrückenden
Gewißheit aufjagte. Er rang nach Atem, nach Beruhigung. Er suchte
seine Beklemmung abzuschütteln. Aber sie wich nicht. Seine
Phantasie arbeitete fort, ob er wollte oder nicht. Er wußte gar nicht,
ob er überhaupt wach geworden war, oder ob er weiterträumte.
Bestimmte Einzelheiten, Äußerungen, die er vergessen, mit halbem
Ohr gehört, Szenen des Zusammenseins mit den Hammanns bei
seinen Schwiegereltern, bei jenen selbst, hier im eigenen Haus — sie
standen in einem neuen, verfänglichen Licht vor ihm. Besonders war
es ein Wort Alices, das sie bei einer Schmauserei mit ihrem
göttlichen Leichtsinn in die Unterhaltung geworfen und das jetzt mit
beinahe physischer Leuchtkraft vor ihm brannte. „Edith, wie wär's,
wenn wir uns heute mal so richtig übers Kreuz amüsierten, du mit
meinem, ich mit deinem Kreuzritter?!” Hatte es dabei nicht boshafter
und tückischer denn je in ihren Augen geflackert? Und sie hatten alle
vier darüber gelacht. Er sah und hörte dies Lachen. Er lachte aus
Höflichkeit, Edith Hammann belustigt in ihrer stumpfen, so gar nicht
abenteuerlustigen Art, Alice kurz und aufreizend, wie sie es gern tat,
und Hammann mit verlegener Lautheit ...
Perthes war aufgesprungen.
Mit behender Hast, immer unter dem Zwang dieser
Wahnvorstellungen, halb träumend, halb wach, warf er sich in seine
Kleider. Es dämmerte noch kaum, und er zündete ein Licht an. Er
war sich keiner bestimmten Absicht bewußt und handelte doch von
Sekunde zu Sekunde mit der exakten Konsequenz eines
Nachtwandlers.
Er stieg die Treppe hinunter.
Dann betrat er das Zimmer seiner Frau neben dem Speisezimmer.
Vor ihrem Schreibtisch machte er halt und setzte seine Kerze nieder.
Für einen Augenblick lichtete sich sein Bewußtsein. Wollte er eine
Schlechtigkeit tun? War er wahnsinnig geworden? Wo war er? Was
trieb er?
Doch schon faßte ihn wieder der Zwang. Gewißheit um jeden
Preis mußte er haben!
Er riß an der verschlossenen Schublade des Schreibtisches. Der
Widerstand entfachte nur seine Wut. Mit seiner ganzen, in der
Anspannung gewaltigen Körperkraft erbrach er sie. Alice hätte in
diesem Moment erfahren können, daß der Räuberhauptmann in ihm
noch nicht vom Philister völlig verschlungen war!
Er wühlte in dem wahllosen Durcheinander von Rechnungen,
Briefpapier, Einladungen.
Schließlich, ganz zu hinterst, aber gar nicht etwa versteckt, fand
er Briefe mit Hammanns unpersönlicher Schrift. Einen, zwei, die
nichts von Belang, nichts Überzeugendes enthielten. Dann eine
Briefkarte, mit Bleistift geschrieben — sechs, acht Zeilen — die ihn
auf den Stuhl vor dem Schreibtisch taumeln ließen.
Das war die Gewißheit, die er gesucht hatte. Alice hatte ihn mit
Ludolf Hammann betrogen ...
Mit der Gewißheit kam für Perthes das Erwachen aus dem
dämmerhaften, halbwachen Zwang, der ihn zu einer häßlichen
Gewaltsamkeit fortgerissen hatte ...
Wie lange er so gesessen, wußte er nicht. Die Wahrheit,
grausam, hämisch, konsequent, wie der Traum, der ihn gepeinigt —
erst tobte sie in ihm mit Gefühlen der Verachtung, des Schmerzes,
des entwürdigten Stolzes, die in seinem Innern stritten und die
Vorherrschaft vor seinem Verstand begehrten; dann gab sie ihm
einen kalten, nüchternen Entschluß, mit dem er sich erhob.
Er nahm die Briefe an sich, ging zurück in sein Schlafzimmer und
machte sich fertig.
Früh am Morgen, viel früher als sonst, schallte seine Stimme mit
ungewohnter Schärfe durch das Haus. Er überschüttete die
Dienstboten, das Kinderfräulein mit einer Flut von Befehlen, so daß
sie in heller Bestürzung umeinander liefen.
Das dauerte etwa eine Stunde.
Dann verließ er mit seinem Jungen die Villa. Nicht einen Tag
länger konnte er unter diesem Dach bleiben. Die Lüge seiner Ehe,
eines trugvollen, jahrelangen Scheinlebens war zu Ende und sollte es
auch äußerlich sein.
Erst wollte er sich mit seinem Kind in einem Hotel einquartieren.
Doch die Besonnenheit riet ihm von diesem zu auffallenden Schritt
ab. Er erinnerte sich an sein Junggesellenquartier bei Fräulein
Eschborn. Dorthin schleppte er seinen verstörten, heulenden
Jungen. Dort fand er — da das Semester vorbei war und die
Studenten fehlten — ein Notquartier. Im ersten Stock: ein
Arbeitszimmer und ein Schlafkabinett für ihn, eine Stube für Benno
und das Kinderfräulein, das nachkommen sollte — war alles, was er
einstweilen brauchte. In weniger als einem halben Tag war der
Auszug vollendet ...

Die Wochen des Kriegs begannen.


Es waren entsetzliche Wochen, in denen das Herz aus allen
Wunden blutete und der Kopf doch Meister bleiben mußte.
Die erste kategorische Fehdeanzeige fiel nach Nieburg wie eine
Bombe. Mama Hupfeld legte sich, wie immer bei aufregenden
Gewittern, sofort zu Bett. Exzellenz, von der Unschuld seiner Tochter
überzeugt, schäumte. Er schrieb an Perthes, den Mann, den er
„gemacht” hatte, einen Brief voll hochfahrenden Zorns, in dem er
seinem aufgespeicherten Groll gegen das Geschöpf seiner
Gutmütigkeit ohne jede klassische Bezähmung freien Lauf ließ. Er
wollte seinen Schwiegersohn demütigen und zur Räson bringen. Als
Antwort schickte dieser die Abschrift der belastenden Briefkarte von
Hammann. Der Geheime Rat stutzte. Er wurde vorsichtig, denn er
witterte Skandal, und den mußte er um jeden Preis vermeiden. Noch
hoffte er, daß die Rückkehr Alices, die stündlich bevorstand, eine
andere Erklärung geben und das Beweismaterial ihres Mannes
erschüttern würde. Alice kam. Sie war ein bißchen erstaunt. Ein
bißchen bestürzt. Ein bißchen empört. Im Grund fand sie die
erbrochene Schublade das beste, was ihr Mann nach Jahren einmal
wieder geleistet hatte. Was für Exzellenz das Schlimmste war: sie tat
ihm nicht den Gefallen, ihre Beziehungen zu Hammann zu
beschönigen. Sie leugnete nichts. Zerknirscht war sie auch nicht. Das
Abenteuer mit Hammann war eine Laune gewesen, die sie,
gelangweilt von ihrem Mann und von aller Regelmäßigkeit, früher
oder später kosten mußte. Skrupel empfand sie dabei nicht. Das
Unangenehme, das daraus entstand, wurde durch das Neue, das es
brachte, aufgewogen. Spaßhaft hätte sie es gefunden, wenn sich
Perthes und Hammann um ihretwillen geschossen hätten. Darauf
wartete sie auch. Vielleicht war es doch etwas Galgenhumor, was sie
zur Schau trug, jedenfalls ein Galgenhumor, der diesmal sogar ihren
Vater fast zu zorniger Verzweiflung brachte ...
Perthes hatte in der Tat daran gedacht, Hammann zur
Verantwortung zu ziehen. Eine Zeitlang begehrte sein Blut diese
knallende Lösung. Aber dann übermannte ihn der Ekel. Sollte er sich
für ein Chimäre schlagen? Die Ehre von Alice war längst nicht mehr
die seine. Mochten Splitterrichter des Duellkomments, dem er für
einen würdigeren Fall die Berechtigung nicht versagte, ihn
verdammen. — Den Eklat eines Prozesses scheute er nicht. Doch
dagegen kämpfte der Geheime Rat mit allen Mitteln. Sogar denen
einer höflichen, bittenden Überredungskunst. Diese war es nicht, die
bei Perthes verfing. Aber die ruhigere Erwägung sagte ihm, daß er
selbst durch einen grellen Skandal mehr verlieren als gewinnen
konnte. Auch noch seine wissenschaftliche Laufbahn zu opfern —
dazu fühlte er sich nicht bemüßigt und, im Hinblick auf sein Kind,
nicht berechtigt. Bis zum Herbst dauerte das Hinüber und Herüber
der feindlichen Lager. Dann brachte der Vorschlag des Hupfeldschen
Rechtsanwalts die Lösung, die beide Parteien — mit Einverständnis
der sehr degoutierten Gräfin Hüningen, des kleinlauten Professor
Hammann und der verstörten, so gar nicht nachtragenden Edith —
annehmen konnten und mußten. Perthes, der den Ruf nach
Norddeutschland endgültig angenommen hatte, würde dorthin mit
Benno übersiedeln. Alice sollte sich weigern, den neuen Wohnsitz
mit ihm zu teilen. Seine wiederholte Aufforderung, ihr Widerstand
erzielten dann innerhalb der gesetzlichen Frist den Scheidungsgrund,
der ihm das Kind ließ und vor der Öffentlichkeit den Skandal
annähernd verschleierte.
Mit einer Komödie sollte symbolisch die Ehe von Max und Alice
Perthes ihren Abschluß finden.
20
Es war Oktober geworden.
Ein warmer, milder Herbst lag über dem Land. Sanft bräunten
und röteten sich die Laubwälder an den Hängen und auf den
Kämmen der Berge. Wehmütig hängte sich die dunkelgoldene Sonne
an die erstarrende Erde. Sie spielte melancholisch mit den Wellen im
Fluß, die unerwärmt unter ihrem liebkosenden Schein davonliefen.
Es war wieder die große, stille Zeit des Abschiednehmens
gekommen, in der so viel Reife und Tiefe der Stimmung liegt. Es ist
im eisknirschenden Winter, im knospensprengenden Frühling, im
kornknisternden Sommer nicht so viel Musik als im Herbst: aber es
ist die Musik der Heimlichen und Reifen; die Musik derer, die vom
Sterben die Kraft nehmen und die Lust zum Leben; es ist die Musik
der großen Stille ...
Das luftige Giebelzimmer über der Stadt und dem Fluß, in dem
Perthes als Junggeselle gewohnt hatte, war frei geworden. Trotz der
Gegenvorstellungen von Fräulein Eschborn, die das Quartier für ihn
nicht mehr standesgemäß finden mochte, war er in den letzten
Wochen aus dem ersten Stock dort hinaufgezogen. In einer Zeit, wo
alles um ihn wankte und niederbrach, empfand er das hartnäckige
Bedürfnis, sich an diese Giebelstube von einst zu klammern. Er hatte
dabei nicht erst seine Gefühle und Erinnerungen umständlich
befragt: daß er nicht stimmungsselig da oben würde, dafür sorgten
die Aufregungen dieser Zeit des Kampfes, des Abschlusses seiner
klinischen und akademischen Pflichten, die zahlreichen Schreibereien
und Abmachungen, die die Übersiedlung an einen neuen Ort der
Tätigkeit, in andere Bedingungen des Lebens notwendig machten.
Erst in der zweiten Woche des Oktobers trat eine kurze Pause
und unfreiwillige Ruhe für ihn ein. Er hatte sich auf der Klinik
verabschiedet. Der Kampf um die Scheidung von Alice, so aufreibend
und nervenzehrend, war abgeebbt. Seine neue Stellung war in allen
Teilen gesichert. Nur die kleinen Geschäfte, die mechanisch und
nichtssagend sind, Formalitäten verschiedener Art hielten seinen
Fortzug noch um einige Tage auf. In der Entspannung, die jetzt
unmerklich während dieser gezwungenen Mußezeit seinen Geist und
sein Herz überkam, beschlich es ihn doch manchmal eigen in seinem
Junggesellenzimmer, und wenn er sich über die Brüstung des
Fensters lehnte, hörte auch er vom Fluß herauf, über die
sonnenglänzenden Dächer weg, herunter von den
tannenbescheitelten und laubwaldumkränzten Bergen die heimliche,
tiefe Musik des Herbstes. Erst vernahm er nur ihre ersterbende
Wehmut: allein, mit leerem Herzen, gebrochen, ärmer als er einst
eingezogen, zog er jetzt durch dieselbe Tür wieder davon. Er wehrte
den Erinnerungen, aber sie gaben ihn nicht frei: seine jungenhaft-
törichte Schwärmerei für Hilde König; sein unfähig-gewaltsames
Ringen nach der Höhe, wo Marga gestanden und sein schwacher,
schuldvoller Absturz; seine tolle, trügerische Taumel- und
Leidensgeschichte mit Alice — Erlebnisse dieser Jahre hatten leer-
und totgefegt, was in ihm war. Aber dann hörte er heller, deutlicher.
Hörte hinter die Töne der Wehmut: aus der traurigen Weise des
Sterbens löste sich leise, aber fest eine andere. War er nicht doch
reicher geworden bei all der Armut? Da war seine Liebe zur
Wissenschaft, eine dauerhafte, echte Liebe, die nichts mit dem
haltlosen Hin und Her früherer Neigungen gemein hatte. Da war sein
Junge, Fleisch von seinem Fleisch, ein Ziel und eine Hoffnung, auch
wenn er Blut von ihrem Blut hatte. Und da war er selbst, ein Mann,
ein Wollender, einer der sich kannte und beherrschte, der nicht
sprang, sondern schritt — vielleicht doch empor — nicht mehr zu der
Höhe, die Marga gehörte, aber doch zu einem, zu seinem Gipfel: zu
der Persönlichkeit, die er werden konnte. Er hörte etwas, auch er,
von der Musik der Heimlichen und Reifen, derer, die vom Sterben die
Kraft nahmen und die Lust zum Leben ...
In solchem Lauschen war er eines Morgens versunken, als das
Kinderfräulein mit Benno bei ihm eintrat. Sie hatte den Kleinen vor
kaum einer halben Stunde in den Kindergarten gebracht. Fragend
wandte sich Perthes nach den beiden um.
Der Junge machte ein verschlossenes, eigensinnig-finsteres
Gesicht und zerrte sein Fräulein am Rock, als wollte er sie hindern,
zu reden. Das junge Mädchen sah verlegen und unschlüssig aus, als
traute es sich nicht zu sprechen und auch nicht zu schweigen.
Perthes, der seinem Jungen mehr Aufmerksamkeit schenken
konnte als sonst, musterte ihn und das Fräulein.
„Was gibt's?” fragte er mit knapper Stimme. „Die Schule ist doch
noch nicht zu Ende?”
„Nein, Herr Professor, aber —”
„Laß mal das Fräulein los! Setz dich artig auf einen Stuhl! — Nun,
aber?”
„Die Damen sagten — Fräulein Richthoff sagte — er solle nicht
wiederkommen!” stammelte das Mädchen ratlos.
„Was heißt das?” Perthes runzelte die Stirn. „Ich versteh' das
nicht. Ist etwas vorgefallen? Reden Sie doch!” Er näherte sich dem
Fräulein und warf gleichzeitig einen besorgten Blick auf den Kleinen,
der zwischen Trotz und Tränen auf seinem Stuhl schwankte. Er hatte
seinerzeit erst nachträglich von Alice erfahren, daß sie den Jungen in
den Richthoffschen Kindergarten gebracht. Es war ihm peinlich
gewesen, aber er hatte es nicht mehr ändern können. Wenn Benno
von dort erzählte, beschränkte er sich meist auf das Zuhören und
lenkte ihn bald ab. Auch das jetzige Thema kam ihm ungelegen, und
er hätte es gern so schnell wie möglich abgetan.
Das Kinderfräulein rückte schüchtern mit vielen Wenn und Aber
heraus. Benno wäre gestern unartig gewesen; er hätte die Damen
erzürnt; die Jüngere hätte heute entschieden erklärt, er dürfe nicht
mehr kommen.
Perthes horchte betreten auf.
Welcome to our website – the perfect destination for book lovers and
knowledge seekers. We believe that every book holds a new world,
offering opportunities for learning, discovery, and personal growth.
That’s why we are dedicated to bringing you a diverse collection of
books, ranging from classic literature and specialized publications to
self-development guides and children's books.

More than just a book-buying platform, we strive to be a bridge


connecting you with timeless cultural and intellectual values. With an
elegant, user-friendly interface and a smart search system, you can
quickly find the books that best suit your interests. Additionally,
our special promotions and home delivery services help you save time
and fully enjoy the joy of reading.

Join us on a journey of knowledge exploration, passion nurturing, and


personal growth every day!

ebookmasss.com

You might also like