Я не совсем уверен, как сказать это по-английски, но я хочу сделать что-то вроде этого:
template <class T>
class derived: public T
{ blah };
Где в принципе у меня есть шаблонный класс, но я извлекаю новый класс из класса, который указан в шаблоне? То есть поэтому я не обязательно знаю класс во время компиляции.
Это вообще возможно?
Если это так, какова семантика для этого?
Например, скажем, я пытаюсь написать «родительский» класс. Для целей этого примера предположим, что это родительский элемент дерева. Родитель дерева - это само дерево (поэтому оно наследуется от дерева), но также имеется вектор ссылок на дочерние деревья.
Однако сам родительский класс не обязательно должен быть деревом; это может быть любой класс, такой, что я мог бы написать что-то вроде:
Parent<tree> treeParent;
Parent<shrub> shrubParent;