malloc/freeだとコンストラクタ/デストラクタが呼ばれない、と。
#include <iostream> #include <cstring> using namespace std; class Foo { public: Foo() { cout << "Foo()\n"; }; ~Foo() { cout << "~Foo()\n"; }; }; int main() { Foo *p = (Foo *) malloc(sizeof(Foo)); delete p; Foo *p2 = new Foo; free(p2); return 0; }
~Foo()
Foo()