Access control under inheritance : Inheritance « Class « C++






Access control under inheritance

  
#include <iostream>
using namespace std;

class Enemy
{
public:
    Enemy(): m_Damage(10) {} 
    
    void Attack() const
    { cout << "Attack inflicts " << m_Damage << " damage points!\n"; }  

protected:
    int m_Damage;
};

class Boss : public Enemy
{
public:
    Boss(): m_DamageMultiplier(3) {}
        
    void SpecialAttack() const
    { cout << "Special Attack inflicts " << (m_DamageMultiplier * m_Damage); 
      cout << " damage points!\n"; }

private:
    int m_DamageMultiplier;
};

int main()
{ 
    Enemy enemy1;
    enemy1.Attack();

    Boss boss1;
    boss1.Attack();
    boss1.SpecialAttack();

    return 0;
}
  
    
  








Related examples in the same category

1.Public inheritancePublic inheritance
2.Three level public inherianceThree level public inheriance
3.Make field public during private inheritance
4.Demonstrate inheriting a protected base class.Demonstrate inheriting a protected base class.
5.A simple example of inheritance.A simple example of inheritance.
6.Share member variables between sub classShare member variables between sub class
7.Virtual functions retain virtual nature when inherited.Virtual functions retain virtual nature when inherited.
8.Inherit base as privateInherit base as private
9.call contructor from parent class
10.Cascade constructor and destructor call
11.Call parent constructor and pass in parameter