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