У меня есть класс для дерева, как показано ниже:
class avl
{
node *root;
public:
avl(int data){
root->data = data;
}
int get_height(node *head = root){ //error here
if (head->right == head->left) return 0;
int l = get_height(head->left);
int r = get_height(head->right);
if (l > r) return l+1;
return r+1;
}
}
Неудивительно, что это приводит к ошибке при определении get_height
. G ++ жалуется на это как «недопустимое использование элемента данных non-stati c». Могу ли я исправить эту проблему или я должен прибегнуть к незаконному использованию обертки здесь. Буду признателен, если вы добавите некоторые детали к тому, что стандарт говорит о причине этой ошибки.