sabato 12 luglio 2014

Istanza di una classe e variabile cui è stato attribuito il valore di quella istanza: cosa unica o due diverse istanze?

Variabile come nuova istanza della classe.

Aggiungo nella classe una funzione che modifica la base della figura:
class Rettangolo{
protected:
 int base,altezza;
public:
 Rettangolo(){}
 Rettangolo(int b, int a){
  base=b;
  altezza=a;
 }
 void modificaBase(){
  base=123;
 }
 int area(){
  return base*altezza;
 }
};
E adesso, per vedere se la variabile mioTriangolo e la variabile vrbl di tipo Triangolo che ho creato e cui ho attribuito il valore di mioTriangolo sono la stessa cosa o due istanze diverse della classe, faccio così:
void main(){

 Triangolo mioTriangolo(3,4);
 Triangolo vrbl;
 vrbl=mioTriangolo;

 cout << mioTriangolo.area() << endl;
 cout << vrbl.area() << endl;
 vrbl.modificaBase();
 cout<< mioTriangolo.area() << endl;
 cout << vrbl.area() << endl;
 getchar();
}

}
Creo una istanza mioTriangolo della classe Triangolo e poi una variabile vrbl di tipo Triangolo cui attribuisco il valore dell'istanza mioTriangolo.
Quindi metto a video l'area di mioTriangolo e di vrbl, faccio scattare nella variabile vrbl la funzione modificaBase e quindi rimetto a video l'area di mioTriangolo e di vrbl.
6
6
6
246

Ecco: sono due cose diverse.

Nessun commento:

Posta un commento