検証実験
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 ; }
結果は以下の通りであります:
補完し、豊かにする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アプリケーションがまだ仮想関数ことに気づいていません。