連結リストを自前で実装したときに、デストラクタがあると要素を全て削除するのが楽でいいですね。
#include <iostream> using namespace std; struct list { char* name; list* next; list(char* name) : name(name), next(0) {} ~list() { cout << name << endl; delete next; } }; void main() { list* node = new list("A"); list* p = (node->next = new list("B")); p = (p->next = new list("C")); p = (p->next = new list("D")); delete node; }
昔どこかで見たのを思い出したんですが、これは結構気分がいいです。