class Kayak:
MUSCLE_DRIVE_TYPE = PADDLE
HULL_TYPE = DISPLACEMENT
number of seats = 1 or two
bool whitewater
class Shanty:
MUSCLE_DRIVE_TYPE = SWEEP
HULL_TYPE = DISPLACEMENT
unsigned number of berths
Following the examples in class Boat, each data member that may be changed will have set/get functions. Virtual functions must be over ridden as needed and pure virtual functions must be implemented.