(a)
typedef struct
{
MotorData mMotor;
int mAccelRate;
} MotorControlData;
(b)
typedef struct
{
//----------------------------------------------
// Set the new speed and an accel/decel rate to reach that speed.
void (*SetNewSpeed)(MotorControlData*, int speed, int rate);
//----------------------------------------------
// Base class Motor methods extracted from its typedef.
void (*InitPort)( MotorData*, int*);
void (*SetSpeed)(MotorData*, int);
int (*GetSpeed)(MotorData*);
void (*SetDirection)(MotorData*, DIRECTION);
DIRECTION (*GetDirection)(MotorData*);
} MOTOR_CONTROL;
extern MotorControlData* MotorControlCtor(void);
extern void MotorControlXtor(MotorControlData*);
extern MOTOR_CONTROL* MotorControl;
Example 4: (a) Class data structure; (b) typedef for the derived class vtable, and constructor/destructor and class vtable pointer definitions.
Back to Article