#include <stdio.h>
struct ITimer {
    virtual void createTimer() = 0;
};
class A : public virtual ITimer
{
    public:
        void showA() {
            printf("showA\n");
            createTimer();
        }
};

class B : public virtual ITimer
{
    public:
        void showB() {
            printf("showB\n");
        }
        virtual void createTimer() {
            printf("createTimer");
        }
};

class C: public A, public B
{
    public:
        void test() {
            showA();
            showB();
        }
};

int main()
{
    C c;
    c.test();
    return 0;
}
