Intanto mi raccomando impara anche la nomenclatura standard per la programmazione ad oggetti.
le classi si scrivono con la prima lettera maiuscola ed il resto in minuscolo (se vuoi accodare altre parole, vale la stessa cosa: es. Persona, PersonaGiuridica ecc..)
i nomi dei metodi anch'essi ogni parola va scritta con la prima lettera maiuscola ed il resto minuscolo, tranne la prima, cioè: stampaCaratteristiche, getNome, setNome ecc...
se usi un attributo (si chiamano così, non più variabili) char*, ovviamente il costruttore della classe non può essere vuoto (devi allocare la memoria per l'attributo con malloc o new) e neanche il distruttore (devi liberare la memoria per l'attributo).
Passiamo al codice: per come la penso io Personaggio sarà una classe virtuale (se ci pensi bene, non esiste nella realtà un personaggio "Personaggio", esiste ad esempio, pensando ad un gioco di ruolo, "Marziano", "Vulcaniano", "Terrestre" che estenderanno la classe virtuale Personaggio).
Pero il metodo stampaCaratteristiche() lo definirei anche in Personaggio, magari stampa alcune caratteristiche comuni a tutti i personaggi come livelloVita, altezza, potenza ecc....
Poi se la classe Marziano ad esempio ha una caratteristica particolare, fai l'override del metodo (non si chiamano più funzioni) stampaCaratteristiche() facendogli stampare le caratteristiche comuni + quella particolare di quella classe, es:
codice:class Personaggio { public: int livelloVita; char* nome; int potenza; .... public: std::string stampaCaratteristiche() { std::string stringa (""); stringa += "Vita: "; stringa += livelloVita; .... return stringa; }; }; class Marziano : virtual public Personaggio { public: // ridefinendo il metodo nello stesso modo, faccio l'override del metodo della superclasse std::string stampaCaratteristiche () { std::string stringa = Personaggio::stampaCaratteristiche(); stringa += "\nColore: Verde"; return stringa; }; };

, "Marziano", "Vulcaniano", "Terrestre" che estenderanno la classe virtuale Personaggio).
) stampaCaratteristiche() facendogli stampare le caratteristiche comuni + quella particolare di quella classe, es:
Rispondi quotando