0

タイトルが示すように、デフォルトのコンストラクターを呼び出したくないというこの条件で、新しいオブジェクトの動的サイズの配列を作成する方法はありますか?

何かのようなもの :

myclass* myarray = new myclass(firstArgument, secondArgument)[32]; 
4

3 に答える 3

1

最も簡単な方法は、ベクター要素をコピー構築できるコンストラクターを持つものnewを使用するのではなく、使用することです。std::vectorほとんどの場合、これが推奨される方法です。ベクトルの代わりに動的に割り当てられた配列が必要になることは、かなりまれなケースです。

(何らかの理由で) new を使用する必要がある場合、これを行う 1 つの方法は、生のメモリを割り当て、それをオブジェクト型にキャストしてから、使用std::uninitialized_fill()して値をその場でコピーすることです。

于 2013-08-14T15:21:01.177 に答える
0

動的配列が必要な場合は、ベクトルを使用できます。これにより、メモリ管理も手放せます。

ベクトル c++ リファレンス

于 2013-08-14T15:19:05.713 に答える
0

これを(新しい方法で)行う方法(または少なくとも簡単な方法)はないようです。

多くの検索の後、私はこの解決策を思いつきました:

 USE VECTOR CLASS

実際、新しいことは忘れて、典型的なプロジェクトでは vector を使用してください。それには多くの利点があります。

于 2013-08-15T11:03:35.750 に答える