ビデオ: C++プログラミング言語入門講座4巻1章オブジェクト指向【動学.tv】4/4 2024
C ++のファクタリングとして知的に満足しているように、それは独自の問題をもたらします。銀行口座クラス、具体的には共通基本クラス 口座に関する例では、 アカウントで定義されたさまざまなメンバ関数を定義する方法について、少し考えてみましょう。
ほとんどの アカウント メンバー関数は、両方のアカウントタイプが同じ方法でそれらを実装するため、問題ありません。ただし、 Account : withdrawal() を使用してこれらの共通機能を実装する方法は異なります。
<! - 1 - >貯蓄口座から引き出すための規則は、当座預金口座から引き出すための規則とは異なります。 Checking:: withdrawal() とは違ってSavings::withdrawal()を実装する必要があります。 しかし、Account::withdrawal()をどのように実装する必要がありますか?
銀行員に助けを求めましょう。会話は次のようなものになる可能性があります。
「口座からの引き出しのルールは何ですか? " あなたが尋ねる。
<! - 2 - >
"どのような種類のアカウントですか?貯蓄やチェック? "返事が来る。
「口座から」、あなたは言う。 "ちょうどアカウント。 "
空白の外観。
問題は質問が意味をなさないということです。 「ただの口座」というようなものはありません。 "すべてのアカウント(この例では)は、預金口座または普通預金口座のいずれかです。アカウントの概念は、2つの具体的なクラスに共通するプロパティを除外する抽象的なものです。
<! - 3 - >重大な財産撤退() が欠けているため、不完全です。 (
抽象クラス はサブクラスにのみ存在するクラスです。コンクリートクラス は抽象クラスではありません。