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(); }

Rispondi quotando