1
0
Fork 0
forked from e187038/SP_GVA1
SP_GVA1/SP_Pedro1/Homework1/SP_Pedro_Chapter06_v2.mq5
super.admin 066c2f4791 convert
2025-05-30 16:25:41 +02:00

109 lines
No EOL
6.9 KiB
MQL5


void OnTick()
{
//---8
double miprecioc,mipreciov,mbruto;
OrdenPlanificada miorden1 (10.0,12.5,500) ;
miorden1.incrementaPreciocompra(0.15);
miorden1.decrementaPrecioventa(0.33);
miprecioc=miorden1.getPreciocompra();
mipreciov=miorden1.getPrecioventa();
// mbruto=miorden1.getMargenBruto(); no seas bruto, es un método/función privada, da error en compilación.
// OrdenPlanificadaconFecha miordenf1 (11.0,13.5,500) ; no sé cómo hacer que el constructor hijo, llame al padre. He probado todo lo del chat gpt, pero nada de nada.
//DASHBOARD
Comment("PRECIO COMPRA : ",miprecioc,"\n",
"PRECIO VENTA : ",mipreciov, "\n",
"MARGEN BRUTO : ",mbruto, "\n"
);
}
//+------------------------------------------------------------------+
class OrdenPlanificada {
protected:
double preciocompra;
double precioventa;
int numerodeTitulos;
public:
double incrementaPreciocompra(double incremento);
double decrementaPreciocompra(double decremento);
double incrementaPrecioventa(double incremento);
double decrementaPrecioventa(double decremento);
double getPreciocompra (void);
double getPrecioventa(void);
OrdenPlanificada(double prc,double prv,int numt);
private:
double getMargenBruto (void);
};
double OrdenPlanificada::incrementaPreciocompra(double pincremento){
double valorfinal;
valorfinal=(preciocompra=preciocompra+pincremento);
return (valorfinal);
}
double OrdenPlanificada::decrementaPreciocompra(double pdecremento){
double valorfinal;
valorfinal=(preciocompra=preciocompra-pdecremento);
return (valorfinal);
}
double OrdenPlanificada::incrementaPrecioventa(double pincremento){
double valorfinal;
valorfinal=(precioventa=precioventa+pincremento);
return (valorfinal);
}
double OrdenPlanificada::decrementaPrecioventa(double pdecremento){
double valorfinal;
valorfinal=this.getMargenBruto(); // esto es una chorradica, pero es para probar que accede a función privada.
valorfinal=(precioventa=precioventa-pdecremento);
return (valorfinal);
}
double OrdenPlanificada::getPreciocompra(void){
return (preciocompra);
}
double OrdenPlanificada::getPrecioventa(void){
return (precioventa);
}
OrdenPlanificada::OrdenPlanificada(double pc,double pv,int pnum) {
preciocompra=pc;
precioventa=pv;
numerodeTitulos=pnum;
}
double OrdenPlanificada::getMargenBruto (void) {
return ((this.getPreciocompra()-this.getPrecioventa()) * this.numerodeTitulos);
}
//------------ clase derivada -------
class OrdenPlanificadaconFecha : public OrdenPlanificada {
protected:
datetime fechafin;
public:
int setFechafin (datetime pfecha);
OrdenPlanificadaconFecha (double prc,double prv,int numt) ; //Exige que la redefina con los mismos parámetros, ¿?
};
/* OrdenPlanificadaconFecha (double pc,double pv,int pnum):OrdenPlanificadaconFecha(double pc,double pv,int pnum) {
this.preciocompra=pc;
this.precioventa=pv;
this.numerodeTitulos=pnum;
}*/
int OrdenPlanificadaconFecha::setFechafin(datetime pfecha) {
this.fechafin=pfecha;
// this.getMargenBruto(); me dice claramente en compilación cannot access private member function
return (1);
}