>>504 しかしこれでもアカン。危険すぎ。

#include <iostream>

class A {
int* p;
public:
A(int i = 0) : p(new int[i]) { std::cout << "Ctor(" << i << ")\n"; }
~A() { std::cout << std::hex << p << "\n"; delete p; std::cout << "Dtor\n"; }
void Init(int i = 0) { *this = A(i); std::cout << "Init(" << i << ")\n"; }
A& operator=(const A& ca) {
delete p;
p = ca.p;
return *this;
}
};

int main()
{
A a(10);
a.Init(5);
}