Я хотел бы написать
класса X (это), который
наследует от (основания) может
выполнить методы B (?) И
должен реализовывать член от C (интерфейс).Есть ли что-то вроде класса, который может быть реализован?
Реализация A и C не является проблемой. Но поскольку X не может выводиться из нескольких классов, кажется, что X не наследует логику A и B. Обратите внимание, что A - очень важный базовый класс, а B - почти интерфейс, но содержит исполняемое поведение. Причина, по которой я не хочу, чтобы B был интерфейсом, заключается в том, что поведение одинаково для каждого класса, который наследует или реализует его.
Должен ли я действительно объявить B как интерфейс и реализовать те же самые 10 строк кода для каждого X, для которого требуется поведение B?
2 месяца
Я в настоящее время обучение C++ для использования в UE4 (Unreal Engine 4).
Поскольку C++ намного менее строг, чем C# это на самом деле содержит шаблона реализации IDOM термин, который описывает это поведение: Их называют Mixin s.
Вы можете прочитать абзац о смешивании C++ here на стр. 9 (второй абзац).
Почему вы просто не наследуете B от A или наоборот? –
Почему вы не можете использовать композицию здесь? Делегируйте методы B в экземпляр B ...(Очень сложно говорить об этом подобным образом таким абстрактным образом. Было бы более полезно, если бы вы дали конкретный пример.) –
@ k4rlsson Поскольку не каждый X требует B (разработчик должен иметь возможность реализовать его или нет) –