Problemas de programación derivados de la herencia orientada a objetos
Moneda de clase
{
Público:
Dinero(int pYuan=0, int pJiao=0 , int pFen = 0);
Operador de moneda (moneda y dinero);
Operador de moneda - (moneda y dinero); // también se puede implementar usando la función amigo.
void operator = (Money amp; money); //El operador de asignación solo se puede utilizar como función miembro y no como función amiga.
Oyster Friends amp operator lt lt (salida de amplificador ostream, moneda y finanzas. dinero
Privado:
int yuan; >int Jiao;
int fen
};
Dinero::Dinero(int pYuan, int pJiao, int pFen)
{
元 = pYuan
Jiao = pJiao
fen = pFen
}
Dinero Dinero:: operador (Dinero y dinero)
{
int yuan;
int jiao;
int fen
Yuan=this-gt;元money.元;
Jiao=this- gt;jiao money.
fen = this- gt;fen money
if(fen gt;= 10)
{
Enfoque = 1;
fen-= 10;
}
Si (julio gt= 10)
{
yuan = 1;
julio-= 10;
}
Reembolsar dinero (yuanes, jiao, centavos);
}
Moneda Moneda:: Operador - (Moneda Moneda y dinero)
{
int yuan;
int jiao;
int fen
fen = this- gt;fen-money .fen;
if (fen lt0)
{
Esto- gt;focus-= 1;
fen = 10;
}
Jiao = this - gt; jiao-money .
If (Jiao lt0)
{
Esto - gt; Yuan - = 1;
Jiao = 10;
}
Yuan = esto - gt Yuan - dinero.
Pagar dinero (yuan, jiao, centavo);
}
void Money:: operator = (Dinero y dinero)
{
元 = dinero.yuan
Jiao = dinero.jiao
fen = dinero.fen
}
Oyster;operator lt lt(salida de amplificador ostream, moneda y finanzas.
Dinero)
{
Salida lt ltmoney.yuan lt lt"yuan"< ltmoney.jiao lt lt"angle" < ltmoney.fen lt lt"fen"
Salida de retorno;
}
void main()
{
Dinero dinero1(3, 6, 4);
Dinero dinero2(1,7,9);
Dinero dinero3;
Dinero dinero4;
Dinero dinero5;
dinero 3 = dinero 1 dinero 2;
dinero 4 = dinero 1-dinero 2;
dinero5 = dinero4
cout lt lt Dinero 3;
cout lt ltMoney 4;
cout lt ltMoney 5;
}