それぞれが実装されたデストラクタを持つオブジェクトを指す2つのポインタを持つ構造を持っていると仮定します。また、ヘッドがNULL以外の値*studentおよび*nextを持つListnode構造を指していると仮定します。
struct Listnode {
Student *student;
Listnode *next;
};
Listnode *head = new Listnode;
Listnodeポインタで予約語を使用すると、delete
「head」はその構造内のデストラクタを呼び出します。StudentクラスとListnodeクラスは、それぞれ「student」と「next」が指します。つまり、* headを削除すると、* studentも削除され、*next提供されたheadがそのListnodeへの唯一のポインタでした。