章XIIIクラスの継承
13.1.1は、クラスを派生します
図1に示すように、派生クラスは、ベースクラス・データ・メンバーに格納されたオブジェクト
図2に示すように、派生クラスのオブジェクトは、基本クラスを使用することができます。
3、派生クラスは、独自のコンストラクタを必要とします。
必要に応じて4、派生クラスは、追加のデータメンバとメンバ関数を追加することができます。
アクセスを考えてみましょう:13.1.12コンストラクタ
図1は、派生クラスは直接基底クラスのプライベートメンバーにアクセスできず、基本クラスのメソッドを介してアクセスされなければなりません。
図2に示すように、派生クラスのコンストラクタは、基本クラスのコンストラクタを使用しなければなりません。
3.派生クラスのオブジェクトを作成すると、プログラムは最初の塩基クラスオブジェクトを作成します。
図4に示すように、第一の派生クラスのデストラクタを実行したことをするために反対でオブジェクトを作成するためにオブジェクトの解放は、次にデストラクタは自動的に基本クラスを呼び出します。
13.2基底クラスと派生クラスの間の特別な関係
図1に示すように、派生クラスのオブジェクトは、メソッドがプライベートではないという条件で、基本クラスのメソッドを使用することができます。
図2に示すように、明示的な型変換せずに、派生クラスのオブジェクトを指すことができ、ベースポインタは、明示的な型変換せずに基本クラス派生オブジェクト参照を参照することができます。
図3に示すように、基本クラスのメソッド呼び出しに対してのみベースポインタまたは参照。
図4は、通常、C ++は、マッチの型への参照を必要とし、ポインタタイプに割り当てられ、このルールは、それを継承する例外です。
13.3継承--is関係
相続の1、三つの方法:公共の継承、private継承、保護継承。
2、パブリック継承関係を確立するための最も一般的な方法である、すなわち、派生オブジェクトは、基本クラスのオブジェクトである任意の派生クラスに対して実行可能なオブジェクト上のベースクラス操作オブジェクトされます。
以上の13.4状態の公共の継承
図1に示すように、多型公共継承ベースクラスメソッドは、派生クラスで仮想メソッドを再定義します。
2は、なぜ架空のデストラクタを必要とする
新しいオブジェクトによって割り当てられ、削除リリースコードを使用します。
#include "stdio.hの" の#include "string.hの" の#include "アルゴリズム" 使用して名前空間STD; クラスブラス{ プライベート: 列挙{} MAX = 35; チャーのfullName [MAX]; ロングacctNum、 ダブルバランス; 公共: 真鍮(定数文字* S = "Nullbody"、ロンアン= -1、ダブルBAL = 0.0); 無効デポジット(ダブルAMT); 仮想無効撤回(ダブルAMT); 使用///仮想重要なキーワード:プログラム選択方法は、オブジェクトへの参照またはポインタの種類に応じて 使用されていない///、プログラムが参照またはポインタの種類の方法に従って選択されるであろう。(基本クラスと派生クラスのオーバーライドメソッド) ダブルバランス()constは、 仮想無効ViewAcct()constは、 仮想〜真鍮(){} }; /// PLUS Brasssアカウントクラス クラスBrassPlus: プライベート: ダブルmaxLoan; 倍速; ダブルowerBank; 公共: BrassPlus(CONSTのchar * S = "Nullbody"、長い= -1、二重BAL = 0.0、ダブルM 1 = 500、ダブルR = 0.10)。 BrassPlus(CONST真鍮&BA、ダブルM 1 = 500、ダブルR = 0.1)。 仮想空ViewAcct()constは、 仮想ボイド(ダブルAMT)を引き出します。 ボイドResetMax(ダブルM){maxLoan = M;} ボイドResetRate(ダブルR){率= R;} ボイドResetOwes(){owesBank = 0;} }。