求解决方法
template <typename T>
class BinarySearchTree
{
public:
//...
private:
struct BinaryNode
{
T element;
BinaryNode *left;
BinaryNode *right;
BinaryNode(const T &the_element,BinaryNode *lt,BinaryNode *rt)
: element(the_element), left(lt), right(rt){ }
};
//...
BinaryNode *FindMin(BinaryNode *t) const;
};
template <typename T>
BinaryNode *BinarySearchTree <T> ::FindMin(BinaryNode *t) const
{
if( t==NULL )
{
return NULL;
}
if( t-> left==NULL )
{
return t;
}
return FindMin(t-> left);
}
问题:给出了这些错误信息
error C2143: syntax error : missing '; ' before '* '
\exercise\binarysearchtree\binarysearchtree\binarysearchtree.h(191) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
\exercise\binarysearchtree\binarysearchtree\binarysearchtree.h(191) : error C2065: 'T ' : undeclared identifier
[解决办法]
template <typename T>
BinaryNode *BinarySearchTree <T> ::FindMin(BinaryNode *t) const
{
====>
template <typename T>
typename BinarySearchTree <T> ::BinaryNode* BinarySearchTree <T> ::FindMin(typename BinarySearchTree <T> ::BinaryNode* t) const
{