martedì 12 agosto 2014

Aggiunta della classe derivata Quadrato, con un solo parametro nel costruttore, all'esercizio precedente.

Aggiungo un'altra figura geometrica, Quadrato, che ha un costruttore con un solo parametro:
#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

9


Ho 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