6

私は検索してきましたが、これに対する答えを見つけることができませんでした。クラスコンストラクターを呼び出さないようnewにオペレーターに指示する方法はありますか?

MyObject* array = new MyObject[1000];

MyObject()これは何千回も呼び出されます!割り当てられたメモリを自分で埋めたいので、コンストラクタで情報を初期化する必要はありません。使用malloc()はあまり調和のとれた C++ コードではありません。

MyObject* array = (MyObject*) malloc(sizeof(MyObject) * 1000);
4

4 に答える 4

4

実際、malloc の使用は C++ コードとあまり調和していません。しかし、 malloc はまさにあなたが求めていることを行います。ですから、あなたが求めていることは C++ とあまり調和していないのではないかと思います。C または C++ でプログラミングする言語を決定する必要があると思います。

他の唯一の実際のオプションは、 MyObject を書き直してコンストラクターを持たないようにすることだと思いますが、それは実際には C++ の方法でもありません。

于 2013-05-01T10:18:04.877 に答える