View Single Post
Old 02-02-2016, 19:01   #1
mistergks
Senior Member
 
L'Avatar di mistergks
 
Iscritto dal: Mar 2011
Messaggi: 1050
[[C++] Ereditarietà e polimorfismo - problema

Sto svolgendo un esercizio in C++ per la programmazione orientata agli oggetti.



Traccia:

Un giocatore ha nome, età e un valore che dipende dal ruolo del giocatore e dall'età.

Progettare la classe Giocatore fornendo solo la definizione (Giocatore.h) tenendo presente che il sistema deve essere flessibile all'aggiunta di un nuovo ruolo.

Inserire nella classe Giocatore tutti i metodi che si ritengono opportuni motivandone l'aggiunta.



Ho risolto cosi':

file Giocatore.h

Codice:
#ifndef GIOCATORE_h

#define GIOCATORE_H



class Giocatore{



protected:

    string nome;

    int eta;

    int valore;



public:

    string getNome() const;

    int getEta() const;

    int getValore() const;

    

    void setNome(string n);

    void setEta(int e);

    void setValore(int v);



    virtual int calcolaValore()=0;



};



#endif // GIOCATORE_h


file Difensore.h

Codice:
#ifndef DIFENSORE_H

#define DIFENSORE_H



#include "Giocatore.h"



class Difensore: public Giocatore{

 public:

    int calcolaValore(){ return v;}

};

#endif // DIFENSORE_H


In pratica ho creato la classe Giocatore come classe astratta e ho messo come metodo virtuale puro calcolaValore() che ho poi definito nella classe Difensore che eredita Giocatore.

Il mio dubbio è va bene questa scelta?

L'ereditarietà è public?

Ultima modifica di mistergks : 03-02-2016 alle 05:49.
mistergks è offline   Rispondi citando il messaggio o parte di esso