Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Poliformismo esercizio

  1. #1

    Poliformismo esercizio

    Ho fatto un piccolo esercizi sul polifomismo per vedere se ho capito il concetto.
    Potete guardarlo e dirmi se va bene? Consigli?
    Esistono modi per inserire nel forum piccoli file .zip
    Grazie
    Lele

    // main

    #include "valoribasi.h"
    #include "valorimoltiplicazione.h"
    #include "valorisomma.h"

    #include <iostream>
    using std::cout;
    using std::endl;

    int main(int argc, char *argv[])
    {
    valoriBasi *nXPtr;

    int val01 = 2;
    int val02 = 3;
    valoriBasi nValoriBasi(val01, val02);
    nXPtr = &nValoriBasi;
    cout << "nXPtr->visualizza (); ";
    nXPtr->visualizza ();
    cout << endl;

    valoriSomma nSomma (val01, val02);
    valoriMoltiplicazione nMolticazione (val01, val02);

    nXPtr = &nMolticazione;
    nXPtr->visualizza ();
    cout << endl;

    nXPtr = &nSomma;
    nXPtr->visualizza ();
    cout << endl;
    }


    // valori basi

    #ifndef VALORIBASI_H
    #define VALORIBASI_H
    #include <iostream>
    using std::cout;
    using std::endl;

    class valoriBasi
    {
    public:
    valoriBasi(int val01, int val02 );
    void setPrimo ( int val01 );
    void setSecondo ( int val02 );

    int getPrimo() const;
    int getSecondo() const;

    virtual void visualizza() const;
    private:
    int primo;
    int secondo;
    };

    #endif // VALORIBASI_H

    valoribase.cpp

    #include "valoribasi.h"

    valoriBasi::valoriBasi(int val01, int val02)
    {
    setPrimo(val01);
    setSecondo(val02);
    }

    void valoriBasi::setPrimo(int val01){
    primo = val01;
    }

    void valoriBasi::setSecondo(int val02){
    secondo = val02;
    }

    void valoriBasi::visualizza() const {
    cout << "Valori basi\n";

    cout << "Primo valore = " << getPrimo () << endl;
    cout << "secondo valore = " << getSecondo () << endl;
    }

    int valoriBasi::getPrimo() const{
    return primo;
    }

    int valoriBasi::getSecondo() const{
    return secondo;
    }

    // valoriMoltiplicazione.h

    #ifndef VALORIMOLTIPLICAZIONE_H
    #define VALORIMOLTIPLICAZIONE_H
    #include "valoribasi.h"
    #include <iostream>
    using std::cout;
    using std::endl;

    class valoriMoltiplicazione : public valoriBasi
    {
    public:
    valoriMoltiplicazione(int &val01, int &val02);
    int getMoltiplicazione() const;
    virtual void visualizza() const;
    };

    #endif // VALORIMOLTIPLICAZIONE_H


    // valoriMoltiplicazione.cpp

    #include "valorimoltiplicazione.h"

    valoriMoltiplicazione::valoriMoltiplicazione(int &val01, int &val02)
    :valoriBasi(val01, val02)
    {
    }

    int valoriMoltiplicazione::getMoltiplicazione () const{
    return valoriBasi::getPrimo () * valoriBasi::getSecondo ();
    }

    void valoriMoltiplicazione::visualizza () const{
    valoriBasi::visualizza ();
    cout << "Valore moltiplicato = " << getMoltiplicazione () << endl;
    }


    // valoriSomma.h

    #ifndef VALORISOMMA_H
    #define VALORISOMMA_H
    #include "valoribasi.h"

    class valoriSomma : public valoriBasi
    {
    public:
    valoriSomma (int &val01, int &val02);
    int getSomma() const;
    virtual void visualizza() const;
    };

    #endif // VALORISOMMA_H


    // valoriSomma.cpp

    #include "valorisomma.h"

    valoriSomma::valoriSomma(int &val01, int &val02)
    : valoriBasi(val01, val02)
    {
    }

    int valoriSomma::getSomma () const {
    return valoriBasi::getPrimo () + valoriBasi::getSecondo ();
    }

    void valoriSomma::visualizza () const{
    valoriBasi::visualizza ();
    cout << "Valori sommati " << getSomma () << endl;
    }

  2. #2
    Utente bannato
    Registrato dal
    Apr 2012
    Messaggi
    510
    Indenta tutto il codice e inserisco nei tag code.

  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301

    Moderazione

    Originariamente inviato da HfChancellor
    Ho fatto un piccolo esercizi sul polifomismo per vedere se ho capito il concetto.
    Potete guardarlo e dirmi se va bene? Consigli?
    Non è questo il modo di porre le domande. Innanzitutto, il codice va formattato. In secondo luogo, se vuoi che gli utenti diano un parere sul programma che hai scritto, devi prodigarti nello scrivere qualche indicazione su cosa fa il tuo programma, senza che gli utenti debbano interpretare anche questo. Infine, il titolo deve essere significativo e contenere il linguaggio di riferimento, che qui non hai specificato.

    Leggi il Regolamento e apri una discussione seguendo tutte le norme e le indicazioni fornite qui.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.