У меня есть набор классов, которые реализуют те же бизнес-методы. Я планирую использовать CRTP вместо виртуальной отправки из-за причин производительности. Но я хотел бы сохранить удобство кодирования в одном интерфейсе, который поставляется с наследованием и виртуальными методами.Использование CRTP с интерфейсом
Возможно ли, чтобы мои специализированные классы наследовали как шаблонный абстрактный класс, который использовал бы CRTP для хранения общего кода, так и наследует от чистого виртуального класса, поэтому я могу создавать экземпляры каждого типа, но иметь код моего клиента зависят только от интерфейса? Еще лучше, как я могу использовать CRTP для обеспечения единого интерфейса для кода клиента при наличии нескольких реализаций?
Ну, если вы планируете реорганизовать код из соображений производительности абстрактный метод не является хорошей идеей ... Вы можете использовать CRTP, чтобы избежать виртуальной отправки, которая почему его общее альтернативное имя - статический полиморфизм. Конечно, с синтаксической точки зрения никто не может помешать вам это сделать, но IMHO вам нужно продумать это ... –
Публичные методы не были бы в интерфейсе, только в специализациях. – ruipacheco