こうすれば、と書こうとしたが、funcはBaseからの仮想関数なのね、ならだめだ。
struct DM1 : public Middle1 {
virtual void func() {func_m1();}
virtual void func_m1() = 0;
};
struct DM2 : public Middle2 {
virtual void func() {func_m2();}
virtual void func_m2() = 0;
};
struct Derived : public DM1, public DM2 {
virtual void func_m1() {}
virtual void func_m2() {}
};