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.

Contents<br />

ix<br />

14 GENERICS ................................................................................................................................................ 191<br />

14.1 GENERIC FUNCTIONS AND PROCEDURES ..................................................................................................191<br />

14.1.1 Advantages and disadvantages of generic units..................................................................................193<br />

14.2 SPECIFICATION OF GENERIC COMPONENT ...............................................................................................194<br />

14.3 GENERIC STACK ................................................................................................................................................1<strong>95</strong><br />

14.3.1 Putt<strong>in</strong>g it all together ...............................................................................................................................197<br />

14.3.2 Implementation techniques for a generic package..............................................................................198<br />

14.4 GENERIC FORMAL SUBPROGRAMS..............................................................................................................198<br />

14.4.1 Example of the use of the generic procedure G_3Order.................................................................200<br />

14.4.2 Summary .....................................................................................................................................................200<br />

14.5 SORTING..............................................................................................................................................................201<br />

14.5.1 Efficiency....................................................................................................................................................201<br />

14.6 A GENERIC PROCEDURE TO SORT DATA ...................................................................................................202<br />

14.6.1 Putt<strong>in</strong>g it all together ...............................................................................................................................203<br />

14.6.2 Sort<strong>in</strong>g records..........................................................................................................................................203<br />

14.7 GENERIC CHILD LIBRARY...............................................................................................................................204<br />

14.7.1 Putt<strong>in</strong>g it all together ...............................................................................................................................206<br />

14.8 INHERITING FROM A GENERIC CLASS ........................................................................................................206<br />

14.8.1 Putt<strong>in</strong>g it all together ...............................................................................................................................207<br />

14.9 SELF-ASSESSMENT ...........................................................................................................................................208<br />

14.10 EXERCISES ......................................................................................................................................................208<br />

15 DYNAMIC MEMORY ALLOCATION............................................................................................ 209<br />

15.1 ACCESS VALUES ...............................................................................................................................................209<br />

15.1.1 Access to an object via its access value................................................................................................210<br />

15.1.2 Lvalues and rvalues..................................................................................................................................210<br />

15.1.3 Read only access .......................................................................................................................................211<br />

15.2 DYNAMIC ALLOCATION OF STORAGE........................................................................................................212<br />

15.2.1 Problems with dynamically allocated storage.....................................................................................215<br />

15.3 RETURNING DYNAMICALLY ALLOCATED STORAGE .............................................................................215<br />

15.3.1 Summary: access all, access constant, access............................................................216<br />

15.4 USE OF DYNAMIC STORAGE ..........................................................................................................................216<br />

15.4.1 Putt<strong>in</strong>g it all together ...............................................................................................................................219<br />

15.5 HIDING THE STRUCTURE OF AN OBJECT (OPAQUE TYPE).....................................................................220<br />

15.5.1 Putt<strong>in</strong>g it all together ...............................................................................................................................222<br />

15.5.2 Hidden vs. visible storage <strong>in</strong> a class......................................................................................................223<br />

15.6 ACCESS VALUE OF A FUNCTION ..................................................................................................................223<br />

15.6.1 Putt<strong>in</strong>g it all together ...............................................................................................................................224<br />

15.7 ATTRIBUTES 'ACCESS AND 'UNCHECKED_ACCESS...................................................................................225<br />

15.8 SELF-ASSESSMENT ...........................................................................................................................................226<br />

15.9 EXERCISES...........................................................................................................................................................226<br />

16 POLYMORPHISM.................................................................................................................................. 227<br />

16.1 ROOMS IN A BUILDING....................................................................................................................................227<br />

16.1.1 Dynamic b<strong>in</strong>d<strong>in</strong>g .......................................................................................................................................228<br />

16.2 A PROGRAM TO MAINTAIN DETAILS ABOUT A BUILDING....................................................................228<br />

16.2.1 Putt<strong>in</strong>g it all together ...............................................................................................................................231<br />

16.3 RUN-TIME DISPATCH.......................................................................................................................................232<br />

16.4 HETEROGENEOUS COLLECTIONS OF OBJECTS.........................................................................................232<br />

16.4.1 An array as a heterogeneous collection................................................................................................233<br />

16.4.2 Additions to the class Office and Room...........................................................................................233<br />

16.5 A BUILDING INFORMATION PROGRAM ......................................................................................................235<br />

16.5.1 Putt<strong>in</strong>g it all together ...............................................................................................................................236<br />

16.6 FULLY QUALIFIED NAMES AND POLYMORPHISM ...................................................................................237<br />

16.7 PROGRAM MAINTENANCE AND POLYMORPHISM ...................................................................................238<br />

16.8 DOWNCASTING..................................................................................................................................................238

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

Saved successfully!

Ooh no, something went wrong!