Table 1
For any base class: 1. Use the preprocessor #define to define the class. 2. Use the class and typedef to define an object. 3. Write methods common to the entire class hierarchy. A method must take a pointer to the object calling it as the first parameter. 4. Write the constructor. a. Allocate memory for the object. b. Assign methods by setting function pointers to the methods written in step 3. c. Initialize attributes. This includes the allocation of additional memory, the opening of files, etc. 5. Write the destructor. a. Close any files opened in constructor. b. Free any additional memory allocated by constructor. c. Free this object. For any subclass: 1. Use superclass's definition, then add new methods and attributes. 2. Write any methods that are different from the superclass's method. 3. Write the constructor. a. Call the superclass's constructor. b. Allocate memory for this object. c. Copy the superclass to this object. d. Free the memory used by the superclass. Use free(), not the destructor. e. Assign the new/different methods written in step 2. f. Initialize attributes. This includes the allocation of additional memory, the opening of files, etc. 4. Write the destructor. a. Close any files specific to THIS object. b. Free only memory specific to THIS object. c. Call the superclass's destructor.