Страницы

Поиск по вопросам

вторник, 23 апреля 2019 г.

Как установить дружественную связь между классом и шаблоном класса?

Как можно установить дружественную связь между обычным классом и шаблоном класса?
Допустим у нас есть шаблон класса MyArray template class MyArray; и обычный класс ArrayEditor class ArrayEditor;
Каким образом я могу установить между ними дружественную связь (friend class)
Между классом ArrayEditor и всеми экземплярами шаблона MyArray? Между классом ArrayEditor и конкретным экземпляром (например int или string)?


Ответ

Между нешаблонным классом NotemplateClass и общим шаблоном класса TemplateClass
template class TemplateClass{};
class NotemplateClass { template friend class TemplateClass; };

Между нешаблонным классом NotemplateClass и явной специализацией шаблонного класса TemplateClass
template class TemplateClass{};
template <> class TemplateClass{};
class NotemplateClass { friend class TemplateClass; };

Комментариев нет:

Отправить комментарий