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{};
Я сделал много изменений в функциях безуспешно и был бы очень признателен за любую помощь.
Мне кажется, вы должны вернуть «голову». Если типы действительно должны оставаться такими, какие они есть, вам нужно выполнить приведение типов:
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
}
Трудно сказать наверняка, не зная деталей, поэтому, возможно, вы захотите сделать что-то еще.
Как в комментариях выше
return &head->info;
это исправило все проблемы с классом и решило проблему типа данных