PDA

Visualizza la versione completa : Poliformismo esercizio


HfChancellor
12-05-2012, 20:29
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;
}

Who am I
12-05-2012, 22:16
Indenta tutto il codice e inserisco nei tag code.

alka
14-05-2012, 09:42
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 (http://forum.html.it/forum/showthread.php?s=&threadid=973887) e apri una discussione seguendo tutte le norme e le indicazioni fornite qui.

Loading