5回の実験継承、ポリモーフィズム誘導体(2)

検証実験

1.は、多層の継承では、同じ名前のベースクラスのメンバーはどのようなことで、派生クラスで登場。ウェイ・メンバー名、メンバーのアクセス・オブジェクト名を? 

      名前のメンバーオブジェクト名:派生クラスのオブジェクト

派生クラスのオブジェクト、キーワード仮想伴うまたは伴わない基本クラスのメンバー関数にアクセスするときに2ベースポインタ、どのメンバーがアクセスされますか? 

       基底クラスのポインタ:派生クラスにアクセスするためのキーワードがありますが、基本クラスのオブジェクトのキーワードへのアクセスなし

 

 

第二に、プログラミング演習

1、設計および実装するクラスのペットロボットMachinePets

書式#include <iostreamの> 
の#include < 文字列 >
 使用して 名前空間はstdを、

クラスMachinePets {
     パブリック
        MachinePets(CONST  文字列S):ニックネーム(S){}
         ストリング getNickname()のconst { 戻りニックネーム;}
         仮想 トーク(){ 戻り 0 ;}
     プライベート文字列ニックネーム。            
}。

クラス PetCats:公共MachinePets {
     パブリック
        PetCats(constの 文字列S):MachinePets(S){}
         文字列トーク(){ リターン " ミャオ族呉〜" ;} 
}; 

クラス PetDogs:公共MachinePets {
     パブリック
        PetDogs(のconst  文字列S):MachinePets(S){}
         文字列トーク(){ リターン " 王の王〜" ;} 
}; 

の遊び(MachinePets * P){ 
    coutの <<のp-> getNickname()<< " と言う" << P->話()<< てendl;

 
    PetCats猫(" ミク" ); 
    PetDogs犬(ダ・黄)。
    
    (遊ぶ猫)。
    (遊ぶ犬)。
    
    リターン 0 ; 
}
MachinePets

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

 

補完し、豊かにする2、簡単なRPGゲーム

1 --- #ifndefの_CONTATNER

2 --- numOfHeal--。

3 --- bag.set(p.bag.nOfHeal()+ bag.nOfHeal()、p.bag.nOfMW()+ bag.nOfMW())。

       p.bag.set(0,0)。

4 ---無効SHOWINFO(プレイヤー&P1、プレイヤー&P2)

5 ---公共プレーヤー

6 --- enemy.isLevelUp()。

7 ---人間> isLevelUp();

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

 

 

第三に、テストサマリー

  • PetDogs(CONST文字列s):MachinePets(S){}長い時間のようにコードのMachinePets片、前の実験であるが、同様の動作
  • コードが間違っを追加しますか?RPGアプリケーションがまだ仮想関数ことに気づいていません。

おすすめ

転載: www.cnblogs.com/zuiyankh/p/10963016.html