Детских У меня возникли ошибки при удалении частного класса члена под названием tree2
, я пытался использовать "**"
, "&*"
, "*&"
но я постоянно получаю ошибку после ошибки.Как удалить узел класса с указателем
заголовочный файл:
class tree1
{
private:
class tree2
{
tree2*child;
tree2**child2;
int data;
};
void clear(tree2** the_root);
tree2* root;
};
Я тот, кто поставил четкую функцию there.So я иду в файл .cpp
и реализовать это следующим образом:
void tree1::clear(tree2** TheRoot)
{
if(*TheRoot == NULL) { return; }
clear(&(*TheRoot->child1));
clear(&(*TheRoot->child2));
delete TheRoot;
TheRoot = NULL;
}
затем в функция, использующая clear, я называю ее clear(root)
или clear(&root)
или clear(*root)
или clear(&*root)
. Все комбинации не удались, я продолжаю получать erros. Каков правильный способ удалить этот класс?
я получаю ошибку, если я называю как ясный (корень), компилятор говорит, не может инициализировать параметр типа ** с lvalue типа * – user124627
, вот что я говорю, назовите его как clear (& root), не забудьте &. –
нет, я имею ввиду, что я получаю ошибку, если я назову его как clear (& root) – user124627