Недавно я увидел следующий фрагмент кода на С++
template <class B>
class A : public B
{
...
};
и мне интересно, в какой настройке такой дизайн является хорошей практикой?
То, как я это понимаю, заключается в том, что наличие суперкласса в качестве параметра шаблона позволяет пользователям A выбирать суперкласс при создании экземпляра объекта A.
Но если это так, не лучше ли иметь общий суперкласс C для всех классов (B), которые используются в качестве аргумента шаблона и A расширяем C?