#include "iostream"
using namespace std;
class Figura{
protected:
int base,altezza;
public:
Figura(){}
Figura(int b,int a){
base=b;altezza=a;
}
virtual int area()=0;
};
class Quadrato:public Figura{
public:
Quadrato(int b){
base=b;
}
int area(){
return base*base;
}
};
class Rettangolo:public Figura{
public:
Rettangolo(int b, int a):Figura(b,a){}
int area(){
return base*altezza;
}
};
class Triangolo:public Figura{
public:
Triangolo(int b, int a):Figura(b,a){}
int area(){
return base*altezza/2;
}
};
void StampaArea(Figura *fig){
cout << fig->area() << endl;
getchar();
}
void main(){
Rettangolo rect(3,4);
Triangolo tri (3,4);
Quadrato qua(3);
StampaArea(&rect);
StampaArea(&tri);
StampaArea(&qua);
}
Funziona ugualmente.
12 6 9Ho creato ex novo un costruttore per la classe Quadrato.
Per farlo, ho dovuto riscrivere il costruttore di default per la classe base, altrimenti ricevevo un messaggio di errore.
Indagherò meglio sui motivi per cui si deve fare questo...
Nessun commento:
Posta un commento