Специализация и наследование членов класса шаблона C++
Я хотел бы записать набор классов, в которых есть:
- чистый виртуальный класс, который обёртывает объект любого вида и связующий получатель для него.
- один или несколько классов для каждого типа объекта, который мне нужен, расширяя виртуальный и переопределяя геттер, чтобы специализировать его.
Кажется, что шаблонное решение для оболочки подходит для случая, но я должен использовать его в двух разных контекстах:
- Первый не знает о реализации оболочки. В этом случае я должен объявить
Wrapper<AnyObj> var;
сAnyObj
стоять за любое имя класса (как?
на Яве). Насколько я знаю, вы не можете сделать это в C++. - второй ограничен конкретной реализацией оболочки. В этом случае мне нужно, чтобы получатель возвращал обернутый объект с точным типом (а не понижал его).
If I'm right I cannot use a template class and, moreover, the wrapper won't have a protected: T* wrappedObject
член.
I don't know if I'm stuck in the Java approach, wrongly thinking from the beginning, or missing something.
Любое предложение приветствуется.