CS ¡162 ¡ Intro ¡to ¡Programming ¡II ¡
Inheritance ¡I ¡
1 ¡
CS 162 Intro to Programming II Inheritance I 1 Basic - - PowerPoint PPT Presentation
CS 162 Intro to Programming II Inheritance I 1 Basic Idea Parent/base/super class Character More general Child/derived/sub class
1 ¡
2 ¡
3 ¡
/* ¡Character.hpp ¡*/ ¡ class ¡Character ¡{ ¡ public: ¡ Character(std::string ¡nameValue, ¡int ¡hitPointsValue, ¡ int ¡strengthValue, ¡int ¡intelligenceValue); ¡ std::string ¡getName() ¡{ ¡return ¡name; ¡} ¡ int ¡getHitPoints() ¡{ ¡return ¡hitPoints; ¡} ¡ int ¡getStrength() ¡{ ¡return ¡strength; ¡} ¡ int ¡getIntelligence() ¡{ ¡return ¡intelligence; ¡} ¡ void ¡setHitPoints(int ¡hitPointsValue) ¡{ ¡hitPoints ¡= ¡hitPointsValue; ¡} ¡ void ¡aWack(Character& ¡c); ¡ private: ¡ std::string ¡name; ¡ int ¡hitPoints; ¡ int ¡strength; ¡ int ¡intelligence; ¡ } ¡
4 ¡
/* ¡Character.cpp ¡*/ ¡ Character::Character(std::string ¡nameValue, ¡int ¡ hitPointsValue, ¡ int ¡strengthValue, ¡int ¡intelligenceValue) ¡: ¡ name(nameValue), ¡hitPoints(hitPointsValue), ¡ strength(strengthValue), ¡intelligence(intelligenceValue) ¡{ ¡ } ¡ void ¡Character::aWack(Character& ¡c) ¡{ ¡ int ¡damage ¡= ¡rand() ¡% ¡strength; ¡ int ¡newHitPoints ¡= ¡c.getHitPoints() ¡-‑ ¡damage; ¡ if( ¡newHitPoints ¡< ¡0 ¡) ¡ newHitPoints ¡= ¡0; ¡ c.setHitPoints(newHitPoints); ¡ } ¡
5 ¡
class ¡Wizard ¡: ¡public ¡Character ¡ ¡{ ¡ public: ¡ Wizard(std::string ¡nameValue, ¡int ¡hitPointsValue, ¡ int ¡strengthValue, ¡int ¡intelligenceValue, ¡ int ¡magicPointsValue); ¡ void ¡heal(Character& ¡c, ¡int ¡numHitPoints); ¡ private: ¡ int ¡magicPoints; ¡ }; ¡
6 ¡
class ¡Wizard ¡: ¡public ¡Character ¡ ¡{ ¡ public: ¡ Wizard(std::string ¡nameValue, ¡int ¡hitPointsValue, ¡ int ¡strengthValue, ¡int ¡intelligenceValue, ¡ int ¡magicPointsValue); ¡ void ¡heal(Character& ¡c, ¡int ¡numHitPoints); ¡ private: ¡ int ¡magicPoints; ¡ }; ¡
7 ¡
It ¡inherits ¡from ¡Character ¡ Variables-‑ ¡name, ¡hitPoints, ¡strength, ¡intelligence ¡ FuncHons-‑ ¡getName(), ¡getHitPoints(), ¡getStrength(), ¡ ¡ ¡ ¡ ¡ ¡ ¡getIntelligence(), ¡setHitPOints ¡
class ¡Wizard ¡: ¡public ¡Character ¡ ¡{ ¡ public: ¡ Wizard(std::string ¡nameValue, ¡int ¡hitPointsValue, ¡ int ¡strengthValue, ¡int ¡intelligenceValue, ¡ int ¡magicPointsValue); ¡ void ¡heal(Character& ¡c, ¡int ¡numHitPoints); ¡ private: ¡ int ¡magicPoints; ¡ }; ¡
8 ¡
class ¡Wizard ¡: ¡public ¡Character ¡ ¡{ ¡ public: ¡ Wizard(std::string ¡nameValue, ¡int ¡hitPointsValue, ¡ int ¡strengthValue, ¡int ¡intelligenceValue, ¡ int ¡magicPointsValue); ¡ void ¡heal(Character& ¡c, ¡int ¡numHitPoints); ¡ private: ¡ int ¡magicPoints; ¡ }; ¡
9 ¡
/* ¡Wizard.cpp ¡*/ ¡ Wizard::Wizard(std::string ¡nameValue, ¡int ¡hitPointsValue, ¡ int ¡strengthValue, ¡int ¡intelligenceValue, ¡ int ¡magicPointsValue) ¡: ¡ Character(nameValue, ¡hitPointsValue, ¡strengthValue, ¡intelligenceValue), ¡ magicPoints(magicPointsValue) ¡{ ¡ } ¡ void ¡Wizard::heal(Character& ¡c, ¡int ¡numHitPoints) ¡{ ¡ int ¡newHitPoints ¡= ¡c.getHitPoints() ¡+ ¡numHitPoints; ¡ c.setHitPoints(newHitPoints); ¡ } ¡
10 ¡
11 ¡
12 ¡
void ¡Wizard::heal(Character& ¡c, ¡int ¡numHitPoints) ¡{ ¡ int ¡newHitPoints ¡= ¡c.getHitPoints() ¡+ ¡numHitPoints; ¡ c.setHitPoints(newHitPoints); ¡ } ¡
void ¡Wizard::heal(Character& ¡c, ¡int ¡numHitPoints) ¡{ ¡ int ¡newHitPoints ¡= ¡c.HitPoints ¡+ ¡numHitPoints; ¡ c.setHitPoints(newHitPoints); ¡ } ¡
13 ¡
void ¡Wizard::heal(Character& ¡c, ¡int ¡numHitPoints) ¡{ ¡ int ¡newHitPoints ¡= ¡c.getHitPoints() ¡+ ¡numHitPoints; ¡ c.setHitPoints(newHitPoints); ¡ } ¡
void ¡Wizard::heal(Character& ¡c, ¡int ¡numHitPoints) ¡{ ¡ int ¡newHitPoints ¡= ¡c.HitPoints ¡+ ¡numHitPoints; ¡ c.setHitPoints(newHitPoints); ¡ } ¡
14 ¡
15 ¡
/* ¡Character.hpp ¡*/ ¡ class ¡Character ¡{ ¡ public: ¡ Character(std::string ¡nameValue, ¡int ¡hitPointsValue, ¡ int ¡strengthValue, ¡int ¡intelligenceValue); ¡ std::string ¡getName() ¡{ ¡return ¡name; ¡} ¡ int ¡getHitPoints() ¡{ ¡return ¡hitPoints; ¡} ¡ int ¡getStrength() ¡{ ¡return ¡strength; ¡} ¡ int ¡getIntelligence() ¡{ ¡return ¡intelligence; ¡} ¡ void ¡setHitPoints(int ¡hitPointsValue) ¡{ ¡hitPoints ¡= ¡hitPointsValue; ¡} ¡ void ¡aWack(Character& ¡c); ¡ protected: ¡ std::string ¡name; ¡ int ¡hitPoints; ¡ int ¡strength; ¡ int ¡intelligence; ¡ } ¡
16 ¡
17 ¡
¡
18 ¡
/* ¡Wizard.hpp ¡*/ ¡ class ¡Wizard ¡: ¡public ¡Character ¡{ ¡ public: ¡ /* ¡code ¡in ¡here ¡*/ ¡ void ¡aWack(Character& ¡c); ¡ private: ¡ /* ¡etc. ¡*/ ¡ }; ¡ /* ¡Wizard.cpp ¡*/ ¡ void ¡Wizard::aWack(Character& ¡c) ¡{ ¡ int ¡damage ¡= ¡1; ¡ int ¡newHitPoints ¡= ¡c.getHitPoints() ¡-‑ ¡damage; ¡ if( ¡newHitPoints ¡< ¡0 ¡) ¡ newHitPoints ¡= ¡0; ¡ c.setHitPoints(newHitPoints); ¡ } ¡
19 ¡
20 ¡
21 ¡
22 ¡