1
element* elements = new element[size.x];

これにより、デフォルトのコンストラクターで X 要素が構築されます。私のプログラムでは、次のように、各要素を異なるコンストラクター パラメーターで構築したいと考えています。

for(int i=0; i < size.x; ++i) 
    elements[i]  = element(i);

不必要なデフォルトのインスタンス化(実装したくない)と不必要な呼び出しを防ぐ方法はありますOperator=か?

4

3 に答える 3

1

それがあなたのデザインを傷つけないなら、これを達成するためにダブルポインタを使うことができます

element ** elements = new element * [size.x];

for(int i=0; i < size.x; ++i) 
    elements[i]  = new element(i);
于 2012-04-19T22:43:04.633 に答える
0

これが本当に問題である場合は、配列を使用しないでください。std::vectorデフォルトのコンストラクターでa を使用します。

明示的なベクトル ( const Allocator& = Allocator() ); デフォルトのコンストラクター: コンテンツがなく、サイズがゼロの空のベクターを構築します。

于 2012-04-19T22:31:21.973 に答える