Hay propiedades que no deben ser de lectura y escritura...
Monto es un propiedad que requiere ser de lectura y escritura, pero deposito y retiro, deben serlo de solo escritura... esto es, una función única.
entero m
entero = propiedad lectura monto
devolver m
fin propiedad
propiedad escritrua Monto(entero valor)
m= valor
fin propiedad
funcion Retiro(entero valor)
m -= valor
fin funcion
funcion Deposito(entero valor)
m +=valor
fin funcion
Como ves es más sencillo...
Fíjate que si el valor a retirar es superior al monto, la cuenta quedará en números rojos...
Al caso podría añadirse funcionalidad para indicar si se permite retirar dejando la cuenta en números rojos o no, y si se permite números rojos si hay un límite...
Te pongo lo primero, y te dejo que tu realices lo segundo:
buleano rojo
buleano = propiedad PermitirCuentaNumerosRojos
devolver rojo
fin propiedad
propiedad PermitircuentaNumerosRojos(buleano r)
rojo = r
fin propiedad
// esto afecta a la función retiro. Ahora devuelve un buleano indicando si se efectuó o no el retiro, y el retiro sólo se lleva a cabo condicionado por la propiedad previa...
buleano = funcion Retiro(entero valor)
si (rojo=TRUE)
si (valor < m)
m -=valor
devolver TRUE
sino
devolver FALSE
fin si
sino
m -= valor
devolver TRUE
fin si
fin funcion
Otra cosa es que puedas retener la última (ó x últimas) operaciones efectuadas... por eso, comentado:
cout <<"El saldo es: "<<p1.getMonto()<<endl;
<---- perfecto, OKcout <<"El saldo es: "<<p1.getRetiro()<<endl;
<---- carece de sentidocout <<"El saldo es: "<<p1.getDeposito()<<endl;
<---- carece de sentidoA cambio deberías teneruna propiedad llamada UltimaOperacion
entero ct
string op
string = Propiedad lectura UltimaOperacion
devolver op
fin propiedad
entero = propiedad lectura UltimaCantidad
devolver ct
fin propiedad
// y modificar lo previo...
...escritura monto(...)
m = valor
op = "Monto"
ct = valor
fin propiedad
... Retiro( ... valor)
m -= valor
op = "Retiro
ct = valor
fin funcion
... Deposito( ... valor)
m += valor
op = "Deposito"
ct = valor
fin funcion
Ahora ya puedes consultar además del saldo, la última operación y el valor de dicha operación... nota que leer el saldo, no se considera una operación, porque nunca modifica ningún valor (por el mero hecho de consultarse).