抽象データ型とC ++

クラスは、データ構造に似た新しいデータ型、ですが、それはそうではありませんデータ構造のいくつか持っている - それは「データ構造を非表示にすることができますように、それはこの機能のメンバ関数を持っているからこそ、「メンバ関数」を「データ(クラス)は、それがユーザーに知られていません。達成するように、クラスのメンバ関数では、接続クラスが実装され、メンバ関数によって行われています。次は一例で、この概念を議論しました:

例:クラスのスロットルバルブ:スロットル

  スロットルバルブは、確かに我々が流れ、レバーと、次に、スロットル弁を通過する流量との相関関係が存在する位置を制御する、即ち、液体の流入および流出を制御するためにジョイスティックを移動させることによって、それに精通しています。最大流量は、流量がゼロ0時00分である場合10位置であるときにスロットルバルブを通る流れを制御できるようにコントロールレバーの位置を制御することにより、スロットルバルブ10は、位置をとります。そのため、スロットルバルブの特性に応じて、我々はいくつかの機能を一覧表示することができますように。

図1に示すように、現在の位置:位置

2、現在の流量:流れ(電流フローの最大流量比を使用して相関が応じた現在位置の最大流量位置の割合として表されます)

図3に示すように、スロットルバルブが現在閉じている:is_noを

図4に示すように、制御レバーがどの位置に移動:シフト

図5に示すように、スロットルバルブが閉じshut_offであります

 

だから我々は、スロットルカテゴリを構築することができます。

スロットル{クラス
    パブリック:
      ボイドshut_off(); //現在の位置、スロットルバルブの閉弁動作初期化
      ボイドシフト(INT量)を、入力されたスロットル位置の//移動
      複流()のconst; //最大位置を出力します。現在位置の比

      BOOL is_no()のconst; //は、ON状態か否かを判断する
    プライベート:
      int型位置;
};

 

これ設けられた部材の機能によると、我々は書かれていた特定のメンバ関数で行われました。

ボイドスロットル:: shut_off(){
  位置= 0。
}

ボイドスロットル::シフト(INT量){
  位置+ =量。
  IF(位置<0){
    位置= 0。
  }そうであれば(位置> 10){
    位置= 10。
  }
}

ダブルスロットル::フロー()constは{
  戻り位置/ 10.0。
}

BOOLスロットル:: is_no()constは{
  リターン(流れ()> 0)。
}

これは、我々は、このクラスの特定の使用条件を行うことができるようになるものです。スイミングプールがある場合、今スロットル位置によって水をオンにする必要があり、その後、水にターン中たびにスロットルの一時間を変更します指定された位置を取得するために必要な量、その時間単位のトラフィック量の出力?

メインINT()
{
  スロットルサンプル。
  int型のUSER_INPUT。
  裁判所未満<<「私は10の位置でスロットルを持っている。」<<てendl;
  「あなたがスロットルを設定したいですか?」はcout << <<てendl;
  裁判所未満<<「10に番号0を入力してください」;
  cinを>> USER_INPUT。
  sample.shut_off();
  sample.shift(USER_INPUT)。

  一方、(sample.is_no()){
    COUT << "フローは今、" << sample.flow()<< ENDL。
    sample.shift(-1)。
  }
  COUT <<「流れがオフになりました」<< ENDL。
  EXIT_SUCCESSを返します。

}

結果は以下の通りであります:

 

おすすめ

転載: www.cnblogs.com/Justina/p/11230987.html