Why does this simple class hierarchy end up in a abstract class B? I don't know a buzz word to search for in this case. (Maybe Diamond-Problem?)
class I_A
{
virtual void foo() = 0;
};
class I_B : public I_A
{
virtual void bar() = 0;
};
class A : public I_A
{
void foo() override {}
};
class B: public A, public I_B
{
void bar() override {}
};
B b; ///< Compiler says it is abstract