#include <iostream>
using namespace std;

class IJob
{
public:
    virtual void job() = 0;
};

class P { };

class A : public P, public IJob
{
public:
    void ab() { cout << "ab()" << endl; }
    virtual void job() { ab(); };
};

class C : public P, public IJob
{
public:
    void cd() { cout << "cd()" << endl; }
    virtual void job() { cd(); };
};

int main()
{
    IJob *p = new A;
    p->job();
    delete p;

    p = new C;
    p->job();
    delete p;

    return 0;
}