Aiuto Classe

di il
5 risposte

Aiuto Classe

Salve a tutti; premetto che ho cercato la sezione di presentazione e non l'ho trovata quindi, se ci fosse e non l'ho vista chiedo scusa anticipatamente.

Volevo chiedervi un parere:
devo svolgere il seguente esercizio:

"Scrivere una classe Interfaccia Persona che possieda il metodo virtuale "Dice()". Scrivere una classe Impiegato che implementi il metodo Dice () di Persona per mostrare a video una stringa che indica il nome e lo stpendio. Definire un programma per mostrare l'invocazione dei metodi Dice () basato sul meccanismo delle tabelle dei metodi virtuali (polimorfismo)."

Io ho provato a svolgere così:


#include <iostream>
using namespace std;


class InterfacciaPersona
{
public:
virtual void Dice()
{};
};


class Persona : public
InterfacciaPersona
{
public: void Dice()
{ cout<< "cibo"<< endl;
}
};


class Impiegato: public Persona
{
public: void Dice()
{cout<<"mi chiamo mirko e guadagno 1000 euro"<<endl;
}
};


void Dice (Persona persona)
{ persona.Dice();
}
void Dice (Impiegato impiegato)
{
impiegato.Dice();
}



int main()
{
Persona persona;
Impiegato impiegato;
Dice (persona);
Dice (impiegato);

return 0;

}

Il programma compila ma non sono sicuro sia corretto

ps: c++

5 Risposte

  • Re: Aiuto Classe

    Ti ringrazio per la risposta; farò tesoro del tuo post;

    mi potresti spiegare perchè non va per niente bene?
  • Re: Aiuto Classe

    Ok sei stato davvero prezioso; ti ringrazio!
    provo a farlo seguendo le tue direttive; ti faccio sapere
  • Re: Aiuto Classe

    Solo una nota aggiuntiva ...

    Utilizza nomi diversi per i membri delle classi, magari con un _ iniziale come

    _nome
    _stipendio

    e così eviterai di scrivere ovunque

    this->
  • Re: Aiuto Classe

    Al limite, per evitare problemi con il nome di membri riservati, eviterei _ e __ ma si può usare il prefisso m_ per "member" ...

    Ognuno fa come vuole ma è opinione di molti che questo metodo genera meno problemi ...

    The 'm' prefix also avoids the (IMHO) ugly and wordy "this->" notation, and the inconsistency that it guarantees (even if you are careful you'll usually end up with a mixture of 'this->data' and 'data' in the same class, because nothing enforces a consistent spelling of the name).

    'this' notation is intended to resolve ambiguity - but why would anyone deliberately write code that can be ambiguous? Ambiguity will lead to a bug sooner or later. And in some languages 'this' can't be used for static members, so you have to introduce 'special cases' in your coding style. I prefer to have a single simple coding rule that applies everywhere - explicit, unambiguous and consistent


    .... e io sono d'accordo (è una mia opinione, derivante dall'esperienza e dalla pratica, non dallo standard).
  • Re: Aiuto Classe

    ultrasound91 ha scritto:


    per me, personalmente, usare this è un modo per rimanere più vicini alla macchina.
    Posso essere d'accordo con tutto ma non capisco come this (un'astrazione) ti faccia sentire vicino alla macchina ...
Devi accedere o registrarti per scrivere nel forum
5 risposte