Ayuda problema poo

Iniciado por matver, 10 Febrero 2018, 17:16 PM

0 Miembros y 1 Visitante están viendo este tema.

matver

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.
Código (cpp) [Seleccionar]

#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;

ivancea96

Bueno, como dice, en Mayor, getCosto es private. No has puesto public. (Mira cómo está Menor)