Javaのfinallyはtry { } finally { x.close(); } を毎回書くが
デストラクタは X::~X() { close(); } を一度書くだけ。