Специализация и наследование членов класса шаблона 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.

Любое предложение приветствуется.

0 ответов

Другие вопросы по тегам