Я получаю эти ошибки, когда пытаюсь скомпилировать простую программу дерева AVL:
no matching function for call to A::max(A*&, A*&)
candidates are: int A::max(A&, A&)
request for member 'levels' in 'b', wich is of non-class type 'A*'
Вот метод, который вызывает проблемы:
void A::simpleLeftRotation(A & tree){
A* b = tree.leftNode;
tree.leftNode = b->RightNode;
b->rightNode = &tree;
tree.levels = 1 + max(tree.leftNode, tree.rightNode); // Problem 1
b.levels = 1 + max(b.rightNode, tree); // Problem 2
tree = b;
}
А вот мой классЧлены:
A* righNode;
A* leftNode;
int levels;
int element;
В строке:
b.levels = 1 + max(b.rightNode, tree);
, если я использую -> insted оператора точки, я получаю:
no matching function for call to A::max(A*&, A&)
candidates are: int A::max(A&, A&)
Я не знаючто я делаю не так.
Спасибо.