- 302 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 00:30:29 ]
- void *p = operator new(sizeof(Hoge)*100);
Hoge *h = (Hoge *)(new (p) Hoge[100]); で大丈夫かな? コンパイルは通るはずだけど。 (当然、Hogeにはデフォルトコンストラクタが必要。 デフォルト引数がある引数を持つコンストラクタで可能かは知らない) ていうか、こうすると、 全部の要素に対して個々にデストラクタを呼び出してからメモリを解放するわけだし だったらコンストラクタだって、(placement newを使って)個々に呼び出すだけで良いじゃない、という話になる。 それだったら、引数の制限も無いしね。
|

|