#include <iostream>

class IA
{
};

class IB : public IA
{
};

class B : public IB
{
};

class IX
{
public:
    virtual void x(IA*) = 0;
};


class X : public IX
{
public:
    virtual void x(IA*)
    {
        std::cout << "ok\n";
    }
};

int main()
{
    B b;
    X x;
    x.x(&b);
}