2012-01-11 5 views
-1

単純な質問 - 継承と仮想メソッドによるパフォーマンスへの影響に対して集計スタックを使用すると、パフォーマンスが余分な呼び出しにどのように影響しますか?継承のパフォーマンスへの影響(is-a)とC++での集約(has-a)

+0

*仮想メソッドを使用しない継承はどうですか? –

+0

^多様性に苦しみ、クラス階層の柔軟性に害を及ぼしませんか? – dtech

+1

はい、集計が機能する場合はなぜ仮想関数が必要ですか? 「柔軟性」のための仮想関数を追加することはできず、それがパフォーマンスを傷つける場合は、不平を言うことはできません。これは、リンゴとオレンジを比較しています。 –

答えて

1

Virtualismは、静的に解決された他の関数呼び出しと比較してランタイムのオーバーヘッドはほとんどありませんが、このオーバーヘッドが十分に大きい場合はプロファイリングによってのみ決定できます。

This最近の私の答えはこれを詳しく説明しています。

+0

一般に仮想化のパフォーマンスへの影響は一定ですが、集計では深度に比例します。これは、クラスの関連する階層の深いツリーの場合に継承を行い、より浅いシナリオではより適切な集約を実現します。 – dtech

+2

パフォーマンスのオーバーヘッドについて気にしないでください。設計に継承が必要な場合は、継承を使用する必要がある場合は継承を使用します。 –

関連する問題