JavascriptProva

martedì 15 maggio 2012

Costruttore predefinito e altro costruttore

Dunque, per dare un valore ai membri dato, variabile nel corso dell'esecuzione, overloadiamo il costruttore:
#include<stdio.h>
class Rettangolo{
 int base, altezza;
public: 
 Rettangolo();
 Rettangolo(int, int);
 int area();
};


Rettangolo::Rettangolo(){}
Rettangolo::Rettangolo(int b, int a){
 base=b;
 altezza=a;
}
int Rettangolo::area(){
 return(base*altezza);
}
void main(){
 Rettangolo MioRettangolo(6,4);
 printf("%u",MioRettangolo.area());
 getc(stdin);
}
In verde, il costruttore predefinito, in blu il nuovo costruttore, con parametri, e il codice che istanzia la classe usando questo costruttore.
Posso anche stabilire che se istanziato senza parametri il rettangolo abbia valori dei membri dato di default di 5 e 3, mentre se istanziato con parametri assuma i valori specificati in questi parametri:
#include<stdio.h>
class Rettangolo{
 int base, altezza;
public: 
 Rettangolo();
 Rettangolo(int, int);
 int area();
};


Rettangolo::Rettangolo(){
 base=3;
 altezza=5;
}
Rettangolo::Rettangolo(int b, int a){
 base=b;
 altezza=a;
}
int Rettangolo::area(){
 return(base*altezza);
}
void main(){
 Rettangolo BaseRettangolo;
 Rettangolo MioRettangolo(6,4);
 printf("%u\n",BaseRettangolo.area());
 printf("%u",MioRettangolo.area());
 getc(stdin);
}
Ecco: la classe viene istanziata senza parametri, secondo il costruttore predefinito, e allora assume il valore predefinito di 5 e 3 per base e altezza, con area corrispondente; poi viene istanziata con parametri, attribuendo ai membri dato i valori di 6 e 4 per base e altezza, con area corrispondente.

Nessun commento:

Posta un commento