смотря чего ты хочешь, тебе же нужно знать какие методы ты хочешь звать?? тебе же нужен об'ект, можно сделать родительскии класс class foo { public: virtual int bar ();
};
ну а потом: class Thing: public foo { public: int bar () { return -1; } }
и foo * init_stuff() { return new Thing; }
я делал так, как тебе подойдет не знаю, смотри.... можно еще вытащить адреса функции члена класса _ZN2Thing3barEv ну или типа, тока это некрасиво....