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{};
我已经对功能做了很多改动但没有成功,我真的很感激任何帮助。
答案 0 :(得分:0)
对我来说,看起来你应该回归'头'。如果类型真的必须保持原样,你必须进行类型转换:
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
}
但是,如果不知道细节,很难确定,所以你可能也想做其他事情。
答案 1 :(得分:0)
如上面的评论
return &head->info;
这解决了类的所有问题并解决了数据类型的问题