Я впервые использую указатели, мой код работает правильно, но мне нужно напечатать деструктор из другого файла. cpp и я не знаю, как это сделать.
После того, как узел отбрасывается с помощью этих двух функций:
bool LList::remove(node* r) {
if (r == NULL || search(r->key) == NULL) {
return false;
}
if (r == head) {
head = head->next;
}
else {
node* prev = getb4(r);
prev->next = r->next;
}
r->next = NULL;
return true;
}
bool LList::drop(int k) {
node* currentNode = search(k);
if (currentNode == NULL || !remove(currentNode))
return false;
node* tmp = currentNode;
while (tmp != NULL) {
currentNode = currentNode->dup;
remove(tmp);
tmp = currentNode;
}
return true;
}
... он правильно печатает «(ключ) удален», используя эту функцию из основного. cpp.
void testDrop(LList& L) {
int key;
cout << "Enter key: ";
cin >> key;
if (L.drop(key))
cout << key << " removed\n";
else
cout << key << " not found in list\n";
}
Однако, Мне также нужно, чтобы он распечатал деструктор из моего узла. cpp, не меняя основной. cpp. Вот деструктор:
node::~node() {
if (next) delete next;
if (dup) delete dup;
cout << "NODE DESTRUCT: key=" << key << " data=" << data << endl;
}
Любой совет будет оценен, спасибо.