Книги по ООП (не для начинающих)?
Посмотрите: "Объектно-ориентированное мышление" Мэтт Вайсфельд
Примерно так это работает.typedef void (*MethodType)();    // Тип указателя на функцию

void myMethodFunc();               // Функция, указателем на которую может служить 
                                                         //  переменная типа MethodType

typedef struct {      // Тип некоего класса    
     MethodType pMethod;  // Виртуальная функция
} SomeClassType;

SomeClassType someObject;
someObject.pMethod = 0;     // Абстрактный объект (интерфейс)
someObject.pMethod = myMethod;  // Определённый объект