Вот мой код. Я написал сообщения об ошибках, которые произошли рядом с соответствующими строками
//AVL Tree implemantation
template<class Element>
class AVLtree
{
public:
int height(AVLnode<Element>*)const;
int max(int,int)const;
};
//Function to get the max
template<class Element>
int AVLtree<Element>::max(int a, int b)
{
return ((a>b)?a:b);
} //Error:'AVLtree<Element>::max' : unable to resolve function overload
//Function to calculate the height
template<class Element> //Error:error C2954: template definitions cannot nest
int AVLtree<Element>::balanceFactor(AVLnode<Element>* p)
{
return (height(p->left) - height(p->right));
}
Первая ошибка заключается в том, что объявлена max()
как функция-член const
но вы пытаетесь определить ее как функцию-член non- const
. Вам нужно добавить const
в определение:
template<class Element>
int AVLtree<Element>::max(int a, int b) const {
return std::max(a, b);
}
Я не могу сильно понять другую ошибку, но это могло быть результатом предыдущей ошибки. Поскольку он использует имя, не объявленное в выдержке опубликованного класса, это может быть и другое.