>>44
そういった実装面での知識はをつけたいなら「Effective C++」 がとても良い。
ほかにもコーディングスタンダードとか、コードデザインの本は色々あるぞ。

グローバルスタンダード的には、
・インターフェース継承はやるけど、クラス継承はなるべくやらない
・まずはコンポジションで表現できないか検討

ってのがセオリー。

セオリーで行けば、
たとえば「体力」「攻撃力」を管理するクラスを作って、各キャラタイプで内臓(コンポジション)
C#なら chara.status.hp = 10 とかで利用。
キャラクターはすべて ICharacter でも作ってIF継承。

じゃないかなぁ。
明確な理由があれば別にセオリーに反して継承してもいいけど、
自分の配下の若い人が継承を使って表現してたら、何で継承したのかは聞くだろうな。
ポリモーフィズム派IFを継承してれば済む話。

継承はコードが読みづらくなるのよ。