====== オーバーライドの練習 ======
==== 今日やった事 ====
**汎化 ⇔ 特化**\\
ここまで勉強すると、設計の方針は2種類の方向性が出てくる。\\
* クラスの機能を増やしていき、継承先の機能をどんどん特殊化していく方向の設計方法
* クラスの最終形を先に設計し、それぞれの派生クラスの共通部分をベースとして抜き出す方法
==== 純粋仮想関数=0 ====
* 宣言時に仮想関数に=0を付ける(意味不明)
* 純粋仮想関数は同じクラス内では実装しない関数 => 必ず派生先ではオーバーライドされる関数になる(じゃないとインスタンス化できない)
* 純粋仮想関数を含むクラスはインスタンス化できない(授業で言わなかったけど、そういうクラスを__抽象クラス__っていうよ)
=== 実践編 ===
汎化+オーバーライドで、RPGのキャラを作ってみよう!\\
・・・今作成中のはず\\
主人公(cChara) setter getter constructorも欲しいね
属性(メンバ変数)
・名前(string)
・腕力 (int)
-------------------------
機能(メンバ関数)
・名乗る(自己紹介) 表示のみ ↓
・戦う(なぐる)
・防御(身を守る)
・逃げる(逃亡)
・特殊攻撃(オーバーライド用 職業別攻撃)
=0 で純粋仮想関数になるよ
-------------------------
→戦士(cWarrior)
・特殊攻撃はない
→魔法使い(cWizard)
・魔法(魔力で攻撃)
→盗賊(cThief)
・ぬすむ(戦士から金を盗む)