1

プロのプログラマーではありませんが、時々プログラムを書いています。最近、プログラミングのヒントについて話している人から話を聞いたことがあります。彼が言ったことの 1 つは、演算子と関数のオーバーロードと呼ばれる C++ の機能がプログラムのパフォーマンスを損なう可能性があるということです。

次に、実行速度に関していくつかのテストを行いました。関数と演算子のオーバーロードを使用するプログラムと使用しないプログラムの間に違いは見られません。関数/演算子のオーバーロードの実際の欠点は何ですか?

4

3 に答える 3

3

関数のオーバーロードは、パフォーマンスにはまったく影響しません。オーバーロードの解決はコンパイル時に行われます。同じ名前をオーバーロードするのではなく、関数に別の名前を付けることは、1つのイオタには関係ありません。

ある意味で、演算子は同上をオーバーロードします。演算子のオーバーロードに関する潜在的な問題は、それらを使用していることにあまり気付いていない可能性があるため、気付かずに高価な操作を使用している可能性があることです。オーバーロードされた演算子の代わりに通常の関数を使用すると、これがより明確になります。しかし、それはせいぜい弱い議論だと思います。

于 2013-01-17T22:35:53.307 に答える
2

オーバーロードによって実行速度が低下することはありません。この人物は、仮想関数を混乱させている可能性があります。仮想関数は通常、ポインターの間接参照で実装されます。

于 2013-01-17T22:34:23.287 に答える
1

オーバーロードはパフォーマンスの速度には影響しません。むしろ、ドキュメントの複雑さが軽減されます。プログラマーはメモリをより適切に使用し、名前で関数を追跡しやすくなります。プログラマーは、ほぼ同じ機能を同じ名前で定義するという利点を得ました。

于 2014-04-25T04:23:24.910 に答える