------静的バインディング、静的で多型は、結合します

静的結合と動的結合
多型の()分類(多型:参照またはポインタの子クラス・オブジェクトの親に)
静的多型:関数を呼び出すアドレスを決定するために、コンパイル時、初期結合、静的結合; OPオーバーロードし、関数のオーバーロード
の動的多型:ダイナミックバインディング、遅延バインディング、呼び出す関数のアドレスを決定するために、実行時に、親クラスの仮想関数、継承、書き換え可能持つ
(b)の多型の分析原則
とき、親(1)仮想関数が存在する場合、それは、vfptrポインタ(最初の4バイト)向け独自の仮想関数テーブルの複数の内部構成を変更する;
(2)サブクラス、継承しvfptr vftable(vtableの)によって継承を、自分の仮想関数テーブルになります。
(3)コンストラクタ、サブクラスは、独自の仮想関数テーブル点をvfptrであろう;
(4)サブクラスの書き換えが発生した場合、独自の仮想関数テーブルの仮想機能を交換します。
(C)多状態の場合-電卓ケース
開発の原則-開閉の原理(拡張のためのオープンが、変更のため閉鎖)
多状態の実装を使用しては、膨張、構造非常に良好に助長しています。(ボトム層を抽象化するように設計されている)、
(IV)抽象クラス(少なくとも一つの純粋仮想関数)
インスタンス化できない抽象クラス、
純粋仮想関数を書き換える必要があり、それらが継承されている場合、。

公開された38元の記事 ウォン称賛13 ビュー4328

おすすめ

転載: blog.csdn.net/YanWenCheng_/article/details/103946999