Ciao ,
Da qualche giorno sto studiando il C++.
Vorrei creare una classe base dalla quale ereditare i membri PROTECTED ed aggiungerne altri
nella classe derivata, quindi accedere a tutti i membri della nuova classe estesa
La classe base si chiama NPC , quella derivata si chiama Warrior
Se non erro posso derivare una classe con l'accesso public in questo modo:
CLASSE BASE
class npc
{
int Hp;
public:
npc();
~npc();
protected: // Protected quindi solo visibile dalla classe derivata
void cammina();
void corri();
void Destra();
void Sinistra();
void Avanti();
void Indietro();
void Salta();
void fermati();
void setHp( int value){ Hp = value;}
int getHp(){ return Hp;}
};
CLASSE DERIVATA
class warrior : public npc
{
public:
warrior();
~warrior();
void skill1();
void skill2();
void skill3();
};
MAIN
#include <iostream>
#include "warrior.h"
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char** argv) {
npc Npc;
warrior wp;
wp. <---- qui vorrei richiamare anche i membri di npc , ma non funziona
Npc. <---- giustamente sono visibili solo il costruttore e il distruttore in quanto ho inserito il modificatore protected, ma non importa io voglio accedere a tutto da warrior ( estendere la classe) e proteggere i membri di npc da accessi diretti
return 0;
}
non funziona perchè non ho capito bene, potete dirmi dove ho sbagliato ?
Grazie mille