Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
[progeR]
30 / 8 / 2
Регистрация: 20.08.2011
Сообщений: 615
Завершенные тесты: 1
#1

Произвольный дружественный шаблонный класс

06.04.2017, 13:40. Просмотров 145. Ответов 3
Метки нет (Все метки)

Добрый день.
Не могу понять, как объявить дружественный шаблонный класс. Имеем некий шаблонный класс:
C++
1
2
template<typename T, typename U>
class Delegate { ... };
Если другой класс:
C++
1
2
3
4
5
6
template<typename Entity>
class Test
{
    // тут нужно объявить класс Delegate дружественным
public:
    // ...
Внутри класса Test я не знаю, какие шаблонные параметры должны передаваться в класс Delegate. Поэтому я хочу сделать дружественным ВСЁ семейство Delegate.
Как это сделать?

Такая запись не работает:
C++
1
template<typename, typename> friend class ItemDelegate;
Получается ошибка:
Код
'template<class, class> class ItemDelegate' redeclared as different kind of symbol
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.04.2017, 13:40
Ответы с готовыми решениями:

Дружественный шаблонный класс
Доброго времени суток. Есть пример из книги (создание списка). Вот код:...

дружественный класс
доброго дня. есть вопрос. на картинке видно что шаблон называется class map....

Дружественный класс
#include &lt;iostream&gt; class X { friend class Y; int a; int b; int y;...

Передача параметра в дружественный класс
Не получается передать значение в дружественный класс #include &lt;iostream&gt; ...

Дружественный класс (код внутри)
вот я не знаю как сделать из этого дружественный класс, все тоже самое только с...

3
GbaLog-
Любитель чаепитий
3164 / 1470 / 465
Регистрация: 24.08.2014
Сообщений: 5,200
Записей в блоге: 1
Завершенные тесты: 2
06.04.2017, 14:02 #2
что такое ItemDelegate?
0
[progeR]
30 / 8 / 2
Регистрация: 20.08.2011
Сообщений: 615
Завершенные тесты: 1
06.04.2017, 14:07  [ТС] #3
Ошибся. Вот так конечно:
C++
1
template<typename, typename> friend class Delegate;
0
GbaLog-
Любитель чаепитий
3164 / 1470 / 465
Регистрация: 24.08.2014
Сообщений: 5,200
Записей в блоге: 1
Завершенные тесты: 2
06.04.2017, 14:09 #4
всё работает:
http://rextester.com/SGM10253
C++
1
2
3
4
5
6
7
8
9
10
11
template<typename T, typename U>
struct Delegate {};
 
template<typename T>
class Some
{
    template<typename, typename> friend class Delegate;
};
 
int main()
{}
ошибка в другом месте.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.04.2017, 14:09

Дружественный класс или функция
Есть 2 класса. Допустим: класс 1: Товар класс 2:Клиент В товаре есть приват...

Нужно удалить класс Rectangle1 дружественный к классу Rectangle
#include &lt;iostream&gt; #include &lt;math.h&gt; #include &lt;conio.h&gt; using namespace...

Класс Matrix: реализовать шаблонный класс для двумерных массивов
Доброго времени суток. У меня вопрос: я создал класс Array со внутренним...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru