Рассмотрим следующий фрагмент:
private interface class IFoo {
void foo();
};
private interface class IBar : public IFoo {
void bar();
};
ref class Foo : public IFoo {
public:
virtual void foo() final { }
};
ref class Bar : public Foo, public IBar {
public:
virtual void bar() final { }
};
Как вы можете видеть, это обычная ситуация, когда базовая функциональность реализована в базовом классе и представлена как базовый интерфейс, а дополнительные функциональные возможности реализованы в классе предка ивыставляется через дополнительный интерфейс.Последний наследует базовый интерфейс, чтобы внешний код мог просматривать экземпляры класса-предка как интерфейсную комбинацию (то есть интерфейс, который имеет как базовую, так и дополнительную функциональность).Однако MSVC сообщает, что Bar должен реализовывать методы IFoo.Возможна ли желаемая стратегия наследования / реализации с C ++ / CX (обратите внимание, в реальной жизни IFoo содержит несколько миллиардов методов, свойств и событий)?Я что-то упускаю здесь очевидное?