class classA { public: virtual void test() = 0; }; class classB : public classA { public: void test() { cout << "blah"; } }; void tester(classA* object) { object->test(); }; int main() { classB* blah = new classB; tester(blah); return 0; }