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)