ho creato un programma ad oggetti c++
la classe banca è un vettore di clienti
solo che a differenza di java noto
che quando cambio il saldo a uno dei clienti
questo non si riflette sull'oggetto creato
in precedenza. E' come se esistessero due oggetti
diversi, uno fuori dal vettore e uno dentro.
come si spiega? il saldo del cliente2 rimane invariato a 1000.
ho fatto lo stesso programma in java, in cui invece trovo la variazione
codice:
#include <iostream>
using namespace std;


class cliente{
private:
  int num_conto;
  int saldo;
  string nome;


public:
    cliente(int c, int s, string n);
    cliente();
    int getSaldo();
    void setSaldo(int s);
    int getNum_conto();
};


class banca{
private:
cliente vett[3];
int pos=0;
public:
banca();
bool prelievo(int cifra, int nc);
bool aggiungicliente(cliente c);
};


bool banca::prelievo(int cifra, int nc){


//trovo il cliente da cui prelevare
int a;
for(a=0;a<3;a++){
if(nc==vett[a].getNum_conto()) break;
}
//il cliente non esiste con quel nc
if(a==3) return false;
cout << "pos: " << a << endl;
//se il cliente esiste e se il saldo lo permette..prelevo
if(vett[a].getSaldo()>=cifra){
    vett[a].setSaldo(4);
    cout << "nuovo saldo " << vett[a].getSaldo();
    return true;
} else return false;


}


banca::banca(){}
cliente::cliente(){}
 bool banca::aggiungicliente(cliente c){
 if(pos<3){
   vett[pos]=c;
   pos++;
   return true;
 }
 return false;
 }




cliente::cliente(int c,int s,string n){
num_conto=c;
saldo=s;
nome=n;
}


int cliente::getSaldo(){
  return saldo;
}


void cliente::setSaldo(int s){
    saldo=s;
}


int cliente::getNum_conto(){
   return num_conto;
}






int main(){
 cliente c1=cliente(2,1000,"luca");
 cliente c2=cliente(6,1000,"massi");
 cliente c3=cliente(8,1000,"marco");


 banca b1=banca();
 b1.aggiungicliente(c1);
 b1.aggiungicliente(c2);
 b1.aggiungicliente(c3);
 bool x= b1.prelievo(500,6);
 cout << x;
 cout << c2.getSaldo();
}