Я хочу иметь интерфейс IA и другой, который расширяет его IB.
A затем реализует IA, а B наследует A, а также реализует IB.
Однако, когда компиляция B получает ошибки, говорящие, что материал IA равен undefined, хотя A определил все: (
class IA
{
public:
virtual ~IA(){}
virtual void foo()=0;
};
class IB : public IA
{
public:
virtual void bar()=0;
};
class A : public IA
{
public:
A();
void foo();
};
class B : public A, public IB
{
public:
B();
void bar();
};
ошибка C2259: 'B': не может создать экземпляр абстрактного класса
за следующих членов:
'void IA:: foo (void)': is abstract