GenericStack hold an example of a template class. =================================================== Accessing a member of a struct Rec that is itself an array element: Assume we want A[i].data 1. Start at base address of array A. 2. Add i*sizeof(Rec) 3. Add the sizes of the members preceding data. ============================== Some data types were devised with the purpose of conserving memory. Two of them are union and variant record.... Union A union is declared memory designated to hold one of several possible values. A union variable looks like a record, but the designated members all share memory, i.e. only one can be in use at any one time. All members represent the same l-value Variant Record A variant record is one where a portion of the record is tantamount a union. - The particular variant is chosen via a 'tag field'