C ++: возвращение шаблонного объекта из класса, несоответствие типов шаблонов?

У меня есть следующий исходный код с ошибкой компилятора. Очевидно, что я пытаюсь сделать, поэтому я не буду пытаться объяснить, кроме того, что node<N>* возвращается неправильный тип, потому что это шаблон, и это создает конфликт с session* объект. Вот ошибка.

linked_list_1.cpp|17|error: cannot convert 'node<session*>*' to 'session*' in assignment|

-1

Решение

В строке 17 вы хотите присвоить возвращаемое значение return_node к session*, но возвращаемый тип return_node это Node<N>* (Node<Session*>*) а не N (session*).
Добавьте функцию доступа к классу узла и используйте ее для доступа к элементу данных, например:

session* SESSION_COPY;
SESSION_COPY =  LIST->return_node(0)->getData();
2

Другие решения

Поскольку return_node функция возвращает node<N>* и не N, Или когда N заменяется аргументом шаблона: return_node возвращается node<session*>* (посмотрите в заголовочном файле), но вы пытаетесь присвоить возвращенный указатель session* переменная. Так же, как сообщение об ошибке очень четко говорит.

1

По вопросам рекламы [email protected]