Object-oriented Software in Ada 95
Object-oriented Software in Ada 95
Object-oriented Software in Ada 95
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
viii<br />
Contents<br />
10.1 INTRODUCTION .................................................................................................................................................147<br />
10.2 TAGGED TYPES ..................................................................................................................................................148<br />
10.2.1 Term<strong>in</strong>ology...............................................................................................................................................148<br />
10.3 THE CLASS INTEREST_ACCOUNT...................................................................................................................148<br />
10.3.1 Term<strong>in</strong>ology...............................................................................................................................................152<br />
10.4 VISIBILITY RULES (NORMAL INHERITANCE)............................................................................................152<br />
10.5 CONVERTING A DERIVED CLASS TO A BASE CLASS...............................................................................152<br />
10.6 ABSTRACT CLASS.............................................................................................................................................153<br />
10.6.1 Putt<strong>in</strong>g it all together ...............................................................................................................................155<br />
10.6.2 Visibility of base class methods..............................................................................................................156<br />
10.7 MULTIPLE INHERITANCE................................................................................................................................156<br />
10.7.1 Putt<strong>in</strong>g it all together ...............................................................................................................................159<br />
10.8 INITIALIZATION AND FINALIZATION..........................................................................................................159<br />
10.8.1 Implementation..........................................................................................................................................161<br />
10.8.2 Putt<strong>in</strong>g it all together ...............................................................................................................................162<br />
10.8.3 Warn<strong>in</strong>g ......................................................................................................................................................162<br />
10.9 HIDING THE BASE CLASS METHODS ...........................................................................................................163<br />
10.9.1 Visibility rules (Hidden base class) .......................................................................................................164<br />
10.9.2 Putt<strong>in</strong>g it all together ...............................................................................................................................164<br />
10.10 SELF-ASSESSMENT ......................................................................................................................................164<br />
10.11 EXERCISES ......................................................................................................................................................165<br />
11 CHILD LIBRARIES ................................................................................................................................ 166<br />
11.1 INTRODUCTION .................................................................................................................................................166<br />
11.1.1 Putt<strong>in</strong>g it all together ...............................................................................................................................167<br />
11.1.2 Warn<strong>in</strong>g ......................................................................................................................................................167<br />
11.2 VISIBILITY RULES OF A CHILD PACKAGE..................................................................................................168<br />
11.3 PRIVATE CHILD .................................................................................................................................................169<br />
11.3.1 Visibility rules of a private child package............................................................................................169<br />
11.4 CHILD PACKAGES VS. INHERITANCE..........................................................................................................169<br />
11.5 SELF-ASSESSMENT ...........................................................................................................................................170<br />
11.6 EXERCISES...........................................................................................................................................................170<br />
12 DEFINING NEW OPERATORS......................................................................................................... 171<br />
12.1 DEFINING OPERATORS IN ADA .....................................................................................................................171<br />
12.2 A RATIONAL ARITHMETIC PACKAGE..........................................................................................................172<br />
12.2.1 <strong>Ada</strong> specification of the package............................................................................................................172<br />
12.2.2 <strong>Ada</strong> implementation of the package.......................................................................................................173<br />
12.3 A BOUNDED STRING CLASS ...........................................................................................................................176<br />
12.3.1 Overload<strong>in</strong>g = and /= .............................................................................................................................177<br />
12.3.2 Specification of the class Bounded_Str<strong>in</strong>g...................................................................................177<br />
12.3.3 Putt<strong>in</strong>g it all together ...............................................................................................................................180<br />
12.3.4 <strong>Ada</strong>.Str<strong>in</strong>gs.Bounded a standard library.............................................................................180<br />
12.3.5 use type ............................................................................................................................................181<br />
12.4 SELF-ASSESSMENT ...........................................................................................................................................181<br />
12.5 EXERCISES...........................................................................................................................................................181<br />
13 EXCEPTIONS........................................................................................................................................... 183<br />
13.1 THE EXCEPTION MECHANISM .......................................................................................................................183<br />
13.2 RAISING AN EXCEPTION.................................................................................................................................184<br />
13.3 HANDLING ANY EXCEPTION .........................................................................................................................184<br />
13.4 THE CAT PROGRAM REVISITED .....................................................................................................................186<br />
13.5 A STACK ..............................................................................................................................................................186<br />
13.5.1 Putt<strong>in</strong>g it all together ...............................................................................................................................188<br />
13.5.2 Implementation of the stack ....................................................................................................................188<br />
13.6 SELF-ASSESSMENT ...........................................................................................................................................189<br />
13.7 EXERCISES...........................................................................................................................................................190<br />
© M A Smith - May not be reproduced without permission