方法を利用する理由は異なるかもしれないのですが、
2 phases construction/destruction
(って呼ばれていたんですね。知りませんでした。)
的な方法を実際に使用したことがあります。

MyClass* p = new MyClass[size]; とすると、
デフォルトのコンストラクタしか呼ばれません。
そこで、>>536 のCreateメソッドをいくつかオーバーロードしておいて、
MyClass* p = new MyClass[size]; とした後に、
Createメソッドをコールしてました。

当初は、ポインタの配列を動的に確保した後にnewを繰り返していたのですが、
大量にオブジェクトを生成することが要求されるようになるにつれて、
メモリの管理領域のオーバヘッドが軽視できないほど大きくなってしまったので、
(特化したアロケータを作成するスキルも当初は無く、)
苦肉の策として導入していました。