Hola, hace poco empecé a programar en C++, hace muy poco diría yo ( ya he programado bastante en Java ).
Pues prácticando un poco hice un programa tonto como este:
#include <iostream>
#include <string>
using namespace std;
class CuentaBancaria{
private:
string ID;
long saldo;
public:
CuentaBancaria(string id, long saldo);
void IngresarSaldo (long cantidad){this->saldo += cantidad;}
void SustraerSaldo (long cantidad){this->saldo -= cantidad;}
void IntercambiarSaldo(CuentaBancaria cuenta1, long cantidad);
long GetSaldo(){return this->saldo;}
};
CuentaBancaria::CuentaBancaria(string id, long saldo){
ID = id;
this->saldo = saldo;
}
void CuentaBancaria::IntercambiarSaldo(CuentaBancaria cuenta1, long cantidad){
this->saldo += cantidad;
cuenta1.saldo -= cantidad;
}
void main(){
CuentaBancaria Jose = CuentaBancaria("100593", 2000);
CuentaBancaria Chema = CuentaBancaria ("100000", 2000);
Jose.IngresarSaldo(1000);
Chema.SustraerSaldo(1000);
Jose.IntercambiarSaldo(Chema, 1000);
cout<< "El saldo de la cuenta Jose es : " << Jose.GetSaldo() <<endl;
cout<< "El saldo de la cuenta Chema es : " << Chema.GetSaldo() <<endl;
}
Al ejecutarlo, me doy cuenta de que la función IntercambiarSaldo, me ingresa el saldo en la cuenta desde la que llamo a la función, pero no me lo sustrae en la otra cuenta.
En este caso, me añade 1000 a la cuenta "Jose" pero no me lo sustrae de la cuenta "Chema" .
Por lo que al ejecutar me queda que tengo 4000 de saldo en la cuenta "Jose" mientras que 1000 en la cuenta "Chema". Cuando debería ser 4000 y 0 respectivamente.