#include <iostream>
using namespace std;

class BaseInterface                                       
{ virtual void test()=0; };                              // abstract class

class ExtendedInterface : public virtual BaseInterface   // virtual inheritance
{};                                                      // abstract class

class Base : public virtual BaseInterface                // virtual inheritance
{ void test() override {} };                             // concrete class

class Extended : public ExtendedInterface, public Base   // multiple 
{};                             // thanks to virtual inheritance, concerete class 

int main() {
	Extended e; 
	return 0;
}