new/delete

deleteしないとプログラムが終了してもデストラクタは呼ばれない、と。

#include <iostream>

using namespace std;

class Foo {
private:
  int i;

public:
  Foo() { cout << "Foo()\n"; };
  ~Foo() { cout << "~Foo()\n"; };
};

int main() {
  Foo *p = new Foo;
  return 0;
}


Foo()