domenica 23 dicembre 2012

Controllo accesso sotto Ereditarietà

Quando viene derivata una classe da un'altra è possibile controllare quanto accesso la classe derivata ha sui membri della classe di base. Per la stessa ragione, si vuole fornire sono la quantità di accesso necessario ai membri della classe base, nel resto del programma, che possa servire alla classe derivata. Non è una coincidenza se vengono utilizzati gli stessi modificatori di accesso visti in precedenza (public, private e protected).

Presentare il programma Semplice Capo 2.0

Il programma Semplice Capo 2.0 è un'altra versione del programma visto in precedenza. Ma in questa nuova versione, la quale fornisce gli stessi risultati all'utente, ma il codice è leggermente diverso in quanto sono state messe delle restrizioni sui membri della classe base.
//Semplice Capo 2.0
//Dimostrazione del controllo di accesso con ereditarierà
 #include <iostream>
 using namespace std;
 class Nemico
 {
     public:
               Nemico(): m_Danno(10){}
               void Attacco const
               { cout << “Attacco infligge” << m_Danno << “ punti danno.\n”;}
    protected: int m_Danno;
};
class Capo: public Nemico
{
    public:
              Capo():m_MultiDanno(3){}
              void AttaccoSpeciale() const
             { cout << “Attacco Speciale infligge” << (m_MultiDanno * m_Danno);
               cout << “ punti danno.\n”;}
   private: int m_MultiDanno;
};

int main()
{
   cout << “Crea un nemico.\n”;
   Nemico nemico1;
   nemico1.Attacco();
  
  cout << “\n Crea un capo. \n”;
  Capo capo1;
  capo1.Attacco();
  capo1.AttaccoSpeciale();
return 0;
}

Nessun commento:

Posta un commento