Un producto tiene dos precios unos mayor y uno menor el precio menor es + 15% y el precio mayor es +25 %.Con el siguiente algoritmo solo estoy calculando los porcentajes ( y esta mal). Si le quito la linea 35 en adelante el programa puede calcular el porcentaje menor pero no funciona con el mayor.
#include <iostream>
using namespace std;
class Articulo{
public:
virtual float getCosto()=0;
void setBase1(float b1){
Base1= b1;
}
void setBase2(float b2){
Base2=b2;
}
protected:
float Base1;
float Base2;
};
class Menor: public Articulo{
public:
float getCosto(){
return (Base1 * 15) /100;
}
};
class Mayor: public Articulo{
float getCosto(){
return (Base2 * 25) /100;
}
};
int main (void){
Menor PreM;
Mayor PreMay;
PreM.setBase1(80);
cout<<"El precio menor es:"<<PreM.getCosto()<<endl;
PreMay.setBase2(50);
cout<<"El precio mayor es:"<<PreMay.getCosto()<<endl;
return 0;
}
In function 'int main()':
articulo.cpp:24:11: error: 'virtual float Mayor::getCosto()' is private
float getCosto(){
^
articulo.cpp:36:46: error: within this context
cout<<"El precio mayor es:"<<PreMay.getCosto()<<endl;
Bueno, como dice, en Mayor, getCosto es private. No has puesto public. (Mira cómo está Menor)