Я должен полностью удалить дерево с переменным числом детей. После удаления мне нужно создать новый объект, к которому перестает работать мой код. Вот что я делаю -
struct node {
string data;
vector<node*> child;
};
class lin
{
vector<node*> pwd;
node* root;
public:
lin()
{ string m;
root = newNode(m);
pwd.push_back(root);
}
//other functions..
}
int main(){
lin* obj = new lin();
while(condition){
delete obj;
lin* obj = new lin();
}
}
Я даже пытался удалять узлы отдельно, используя деструктор, но безуспешно.
~lin(){
cout<<"GONE"<<endl;
int l = (root->child).size();
for(int i=0;i<l;i++)
{
delete (root->child)[i];
}
delete root;
}
Может кто-нибудь указать на мою ошибку и предложить лучший способ сделать это?