Невозможно получить правильное возвращаемое значение, используя ADT в функции члена

template<class Type>
Type* unorderedLinkedList<Type>:: newSearch(nodeType<Type> *head, const Type& x)const
{
if (head == NULL)
return 0;

if (head->info == x)
return ???(head or *head?);

return newSearch(head->link, x);
}

template <class Type>
Type* unorderedLinkedList<Type>::recursiveLinkSeqSearch(const Type& item) const
{
nodeType<Type> *current;
current=this->first;
return newSearch(current, item);}

Теперь я чувствую себя глупо, задавая этот вопрос, но я не могу выяснить возвращаемое значение для этой функции. В основном коде мне нужно вернуть bool или что-то в этом роде. Главное выглядит примерно так.

unorderedLinkedList<classType> l1;
classType *st;
l1.recursiveLinkSeqSearch(st);
if(l1){}else{};

Я сделал много изменений в функциях безуспешно и был бы очень признателен за любую помощь.

-2

Решение

Мне кажется, вы должны вернуть «голову». Если типы действительно должны оставаться такими, какие они есть, вам нужно выполнить приведение типов:

return (Type*)head;

Однако, возможно, вместо этого вы захотите изменить возвращаемое значение ваших функций:

template<class Type>
nodeType<Type>* unorderedLinkedList<Type>:: newSearch(nodeType<Type> *head, const Type& x)const
{
// Function body
}

template <class Type>
nodeType<Type>* unorderedLinkedList<Type>::recursiveLinkSeqSearch(const Type& item) const
{
// Function body
}

Трудно сказать наверняка, не зная деталей, поэтому, возможно, вы захотите сделать что-то еще.

0

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

Как в комментариях выше

return &head->info;

это исправило все проблемы с классом и решило проблему типа данных

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector