18.10.2014 Views

Object-oriented Software in Ada 95

Object-oriented Software in Ada 95

Object-oriented Software in Ada 95

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!