Diamond inheritance and pure virtual functions

struct interface_base
{
  virtual void foo() = 0;
};

struct interface : virtual public interface_base
{
  virtual void bar() = 0;
};

struct implementation_base : virtual public interface_base
{
  void foo();
};

struct implementation : public implementation_base, virtual public interface
{
  void bar();
};

int main()
{
  implementation x;
}

posted @ 2021-04-28 13:51  ylron  阅读(48)  评论(0)    收藏  举报