5

私は最近友人と話し合っていましたが、C ++でオブジェクトを作成するときに、初期化リストを使用すると(データメンバーを割り当てないのではなく)パフォーマンスが向上すると言われました。

なぜこれが(それが本当なら)?

私はこのページを見つけました:

http://www.parashift.com/c++-faq/init-lists.html

そして彼らは一時的なオブジェクトについて言及していますが、最近のコンパイラはこれを回避できると思いましたか?

4

1 に答える 1

5

割り当てを使用する場合、割り当てに到達する前にオブジェクトがデフォルトで構築されます。オブジェクトの構築とコピーが高価な操作である場合、少なくともそのうちの 1 つを取り除く必要があります。初期化リストは、追加のコピー操作を取り除きます。コピー構築により、両方を同時に行うことができます。

于 2012-12-15T17:42:23.640 に答える