Как преобразовать шаблон класса в один из его производных? ⇐ C++
Как преобразовать шаблон класса в один из его производных?
У меня есть следующая конструкция, как показано ниже:
[*]Два регулярных занятия [*]Шаблон класса (n внутренний) с одним параметром [*]Специализация этого шаблона класса с одним из обычных классов. [*]Еще один (внешний) шаблон класса с двумя параметрами, содержащий член первого шаблона класса. [*]Специализация этого шаблона внешнего класса с двумя обычными классами.
класс Foo { }; класс Бар { }; шаблон класс InnerClassTemplate { }; класс InnerDerivative: public InnerClassTemplate { ИНТ дополнительные данные; }; шаблон класс OuterClassTemplate { защищено: InnerClassTemplateinnerMember; ВнешнийТип внешнийМембер; }; класс OuterDerivative: public ClassTemplate { мояФунк2() { // Преобразование шаблона специализированного класса в производный здесь // Ошибка InnerDerivative InternalInstance = (InnerDerivative)innerMember; } }; Внешний производный хочет получить доступ к дополнительным членам класса InnerDerivative, но кажется, что я не могу понизить шаблон внутреннего класса.
Я пробовал:
[*]Кастинг в стиле C [*]static_cast, динамический_cast
Есть ли способ добиться этого?
У меня есть следующая конструкция, как показано ниже:
[*]Два регулярных занятия [*]Шаблон класса (n внутренний) с одним параметром [*]Специализация этого шаблона класса с одним из обычных классов. [*]Еще один (внешний) шаблон класса с двумя параметрами, содержащий член первого шаблона класса. [*]Специализация этого шаблона внешнего класса с двумя обычными классами.
класс Foo { }; класс Бар { }; шаблон класс InnerClassTemplate { }; класс InnerDerivative: public InnerClassTemplate { ИНТ дополнительные данные; }; шаблон класс OuterClassTemplate { защищено: InnerClassTemplateinnerMember; ВнешнийТип внешнийМембер; }; класс OuterDerivative: public ClassTemplate { мояФунк2() { // Преобразование шаблона специализированного класса в производный здесь // Ошибка InnerDerivative InternalInstance = (InnerDerivative)innerMember; } }; Внешний производный хочет получить доступ к дополнительным членам класса InnerDerivative, но кажется, что я не могу понизить шаблон внутреннего класса.
Я пробовал:
[*]Кастинг в стиле C [*]static_cast, динамический_cast
Есть ли способ добиться этого?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Проверьте, является ли экземпляр базового класса одним из производных классов.
Anonymous » » в форуме C++ - 0 Ответы
- 22 Просмотры
-
Последнее сообщение Anonymous
-